我一直在尝试设置单元测试一段时间,并决定从头开始并按照此处的Angular2文档进行操作:
https://angular.io/docs/ts/latest/guide/testing.html#!#live-examples
要尝试创建我的单元测试,它会获取数据,但我无法在测试中正确访问它。
我的服务返回类型
Observable<Review[]>
每当我在我的测试中使用它时,它就表明它是未定义的。
it('should have expected the mock local data', async(inject([], () => {
backend.connections.subscribe((c: MockConnection) => c.mockRespond(response));
service.getReviewById(1).toPromise().then(reviewData => {
expect(reviewData.length).toBe(mockReviews.length,
'should have expected no. of reviews');
});
我用于模型的数据对象是:
const mockReviews = [ {Id: 1, Title: "Test", Description: "Testing"}];
但是它声明在这种情况下长度未定义。
在讨论了Karma的调试器之后,我发现我返回的数组隐藏在参数&#34;数据中。&#34;
我调整了我的代码以尝试补偿和更改
expect(reviewData.length).toBe(mockReviews.length,
到
expect(reviewData.data.length).toBe(mockReviews.length,
但是现在我收到了一个intellisense和一个编译错误。我错过了什么?