无法访问返回的Promise中的访问数据

时间:2017-04-11 20:38:18

标签: javascript angular typescript jasmine karma-jasmine

我一直在尝试设置单元测试一段时间,并决定从头开始并按照此处的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;

enter image description here

我调整了我的代码以尝试补偿和更改

expect(reviewData.length).toBe(mockReviews.length,

 expect(reviewData.data.length).toBe(mockReviews.length,

但是现在我收到了一个intellisense和一个编译错误。我错过了什么?

0 个答案:

没有答案