如何处理在Angular 6中使用resolve和reject返回Promise的函数的测试用例

问题描述 投票:-1回答:1

我正在为函数编写测试用例,该函数返回Promise with 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;
  }

我是处理承诺的函数的测试用例的新手。检查了几个选项,但没有取得任何成功。请帮我解决上述情况,以处理正面和负面情景的测试用例。

typescript promise angular6 karma-jasmine
1个回答
0
投票

你试过传递异步函数吗?下面简单的异步/等待组合就足够了。

it("your test case name", async function() {
  await obj.isAuthSuccess();
  // expect(...).toBe(...);
});
© www.soinside.com 2019 - 2024. All rights reserved.