I am using Jasmine & Karma for unit testing angular app . I have wrote unit tests like this:
describe('#getAll', async () => {
it('#should return user intergration_tester', inject([UsersService], async(service: UsersService) => {
await service.getAll('integration_tester', access_token).subscribe(
user => {
expect(user[0].firstName).toContain('Integration');
done();
})
}));
it('#should return error 404', inject([UsersService], (service: UsersService) => {
service.getAll('integration_tester', '').subscribe(
user => {expect(user[0].firstName).not.toContain('Integration');},
err => { expect(err).toContain('error');}
)
}));
})
When I execute test cases , I see a message SPEC HAS NO EXPECTATIONS for both test cases . I am wondering why it shows spec has no expectations.
Then I followed the suggested solutions in this post: Spec has no expectations - Jasmine testing the callback function
Using done()
:
describe('#getAll', async () => {
it('#should return user intergration_tester', inject([UsersService], async(service: UsersService, done) => {
await service.getAll('integration_tester', access_token).subscribe(
user => {
expect(user[0].firstName).toContain('Integration');
done();
})
}));
it('#should return error 404', inject([UsersService], (service: UsersService, done) => {
service.getAll('integration_tester', '').subscribe(
user => {expect(user[0].firstName).not.toContain('Integration'); done();},
err => { expect(err).toContain('error'); done();}
)
}));
})
Again, Jasmine tells me that the spec has no expectations