【发布时间】:2019-07-22 00:38:03
【问题描述】:
我正在使用 Jasmine 和 Karma 对 angular app 进行单元测试。我写过这样的单元测试:
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');}
)
}));
})
当我执行测试用例时,我看到一条消息 SPEC HAS NO EXPECTATIONS for both test cases。我想知道为什么它显示规范没有期望。
然后我按照这篇文章中建议的解决方案:Spec has no expectations - Jasmine testing the callback function
使用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();}
)
}));
})
Jasmine 再次告诉我spec has no expectations
【问题讨论】:
-
我尝试了解决方案。但没有成功。
-
用您之前尝试的方法更新您的问题。
标签: angular unit-testing jasmine karma-jasmine