gpt4 book ai didi

javascript - 如何测试返回 Promise 的方法

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:17 25 4
gpt4 key购买 nike

我正在编写 Angular 2 RC5 应用程序,并使用 Karma 和 Jasmine 进行单元测试。

我有一个返回 Promise<Foo> 的方法(它位于对 angular 的 http.post 的调用之上)我想在完成后运行一些断言。

这样的东西是行不通的

let result = myService.getFoo();
result.then(rslt => expect(1+1).toBe(3)); // the error is lost

这会创建一个“Unhandled Promise rejection”警告,但错误会被抑制并且测试通过。 如何根据已解决的 promise 运行断言?

注意事项:

  • .catch() 方法似乎不是我想要的。我不想记录或做任何继续正常程序流程的事情,我想让测试失败。
  • 我见过类似 $rootScope.$digest(); 的代码.我不确定这类事情的 typescript 等价物是什么。似乎没有一种方式可以说:“我有一个 promise ,我要在这里等到同步结果”。

最佳答案

测试应该看起来像这样:

it('should getFoo', function (done) {
let result = myService.getFoo();
result
.then(rslt => expect(rslt).toBe('foo'))
.then(done);
});

关于javascript - 如何测试返回 Promise 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39166103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com