【问题标题】:getNumberOfUsers() subscription SPEC HAS NO EXPECTATIONSgetNumberOfUsers() 订阅 SPEC 没有期望
【发布时间】:2019-08-01 04:56:07
【问题描述】:

我不断收到错误:

UserService 单元测试 getNumberOfUsers() 规范没有期望 应该返回用户总数

当我定义如下期望时:

  describe('getNumberOfUsers()', () => {
    it('should return total number of users',
      inject([UserService], (userService) => {
        let noOfUsers = 0;
        userService.getNumberOfUsers().subscribe((result) => {
          noOfUsers = result.data.counter;
          expect(noOfUsers).toBeGreaterThan(0);
        });
    }));

我该如何解决?

【问题讨论】:

  • 订阅是异步的(这就是它的全部意义...),所以直到测试完成之前都没有达到预期。 Read the docs.

标签: angular


【解决方案1】:

你需要提供茉莉的DoneFn

describe('getNumberOfUsers()', () => {
    it('should return total number of users', (done: DoneFn) => { // supply DoneFn
      inject([UserService], (userService) => {
        let noOfUsers = 0;
        userService.getNumberOfUsers().subscribe((result) => {
          noOfUsers = result.data.counter;
          expect(noOfUsers).toBeGreaterThan(0);
          done(); //call DoneFn
        });
    })(); // immediatly call inject function
  });
})

查看更多信息

【讨论】:

  • 但是每当我使用“完成”时,它就会开始给我这个错误:错误:超时 - 异步函数没有在 5000 毫秒内完成”
猜你喜欢
  • 2019-07-22
  • 2016-10-22
  • 2017-06-28
  • 1970-01-01
  • 2012-12-25
  • 2021-09-12
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多