angular - Hvordan tester jeg om en boolsk verdi har endret seg?
Jeg har en funksjon i ts-filen min som endrer verdien til en boolean, men som ikke returnerer en verdi. Jeg klarer ikke å finne ut hvordan jeg tester denne funksjonen i spec.ts-filen.
Dette er funksjonen i ts-filen:
doesUserExist(username: string) {
this.data.getUser(username).subscribe(data => {
this.searchedUserExists = true;
}, err => {
this.searchedUserExists = false;
});
}
Dette er hva jeg har prøvd i spec.ts-filen:
it('testIfUserExistsIsFalse', () => {
let searchedUserExists: boolean;
service.doesUserExist('falsegithubusername123');
expect(searchedUserExists).toBeFalsy();
});
Svar #1
Du kan få tilgang til tjenestens egenskaper direkte hvis de ikke er private
it('testIfUserExistsIsFalse', () => {
service.doesUserExist('falsegithubusername123');
expect(service.searchedUserExists).toBeFalsy();
});
Men egentlig bør du gjøre som @auburg kommenterte og endre funksjonen til å returnere en boolsk verdi, så kan du teste slik:
it('testIfUserExistsIsFalse', () => {
expect(service.doesUserExist('falsegithubusername123')).toBeFalsy();
});
Svar #2
Hvis this.searchedUserExists er en offentlig variabel, sjekk den direkte.
expect(service.searchedUserExists).toBeFalsy();
