angular - TypeError: Kan inte läsa egenskapen 'token' av null
Jag har denna tjänst som returnerar alla städer från ws.
@Injectable()
export class CityService {
constructor(private http: Http, private router: Router,
private auth: AuthService) { }
public getAllCity(): Observable<City[]> {
let headers = new Headers();
headers.append('x-access-token', this.auth.getCurrentUser().token);
return this.http.get(Api.getUrl(Api.URLS.getAllCity), {
headers: headers
})
.map((response: Response) => {
let res = response.json();
if (res.StatusCode === 1) {
this.auth.logout();
} else {
return res.StatusDescription.map(city => {
return new City(city);
});
}
});
}
}
Nu har jag försökt med denna kod för att testa min tjänst. I detta inlägg vill jag veta hur man testar denna tjänst CityService
describe('Service: City', () => {
let service: CityService;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [],
providers: [CityService, AuthService, Http, ConnectionBackend],
imports: [RouterTestingModule, HttpClientTestingModule, HttpModule]
});
});
beforeEach(() => {
service = TestBed.get(CityService);
});
it('#getAllCity should return real value', () => {
expect(service.getAllCity()).toBe('real value');
});
});
Jag försökte denna kod, men visar mig ett fel:
TypeError: Kan inte läsa egenskapen 'token' av null
Hur testar jag/hur visar jag min stad i ng test?
Det här är mitt första försök, kan du föreslå något exempel eller handledning som min kod?
Svar #1
Det är möjligt när du inte har någon aktuell användare. Så bara returnera när det inte finns någon aktuell användare
if(!this.auth.getCurrentUser()){
return;
}
