【问题标题】:How to handle Test cases for function which returns Promise with resolve and reject in Angular 6如何处理在Angular 6中返回带有resolve和reject的Promise的函数的测试用例
【发布时间】:2019-04-15 07:27:42
【问题描述】:

我正在为返回 Promise 和 resolve 的函数编写测试用例,如下所示:

isAuthSuccess(): Promise<any> {
    const promise = new Promise((resolve, reject) => {
      if (this.userInfo) {
        resolve();
      } else {
        const validUserUrl: string = this.cookieService.get('PPRC_VALID_USER');
        if (validUserUrl) {
          this.authenticateUser(validUserUrl)
            .toPromise()
            .then(
              userInfo => {
                if (userInfo) {
                  this.userInfo = userInfo;
                  this.loadResources(userInfo, resolve);
                } else {
                  reject('500_1');
                }
              },
              error => {
                reject('500_1');
              }
            );
          } else {
            reject('500_1');
          }
      }
    });
    return promise;
  }

我是为处理 promise 的函数编写测试用例的新手。检查了几个选项,但没有取得任何成功。请在上面帮助我处理正面和负面情况的测试用例。

【问题讨论】:

标签: typescript promise angular6 karma-jasmine


【解决方案1】:

您是否尝试过传递 async 函数?下面简单的 async/await 组合就足够了。

it("your test case name", async function() {
  await obj.isAuthSuccess();
  // expect(...).toBe(...);
});

【讨论】:

  • 我试过这样,但如果我能得到一个完整的正面和负面场景测试用例,那就太好了
猜你喜欢
  • 2017-11-09
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 2018-10-10
  • 2018-01-16
  • 2019-12-14
  • 2022-06-11
  • 2019-04-07
相关资源
最近更新 更多