2
我想知道是否可以在测试中使用async/await做这样的事情。异步/等待嘲讽
随着定期的承诺,我可以模拟出这样的单元测试承诺。
class Foo {
fn() {
this.someService.someFn().then((data) => this.data = data);
}
}
describe("something", function() {
beforeEach(function() {
this.instance = new Foo();
// Can this part be mocked out with the same idea, when someService.someFn is async fn
this.instance.someService = {
someFn: function() {
return {
then: function(cb) {
cb("fake data");
}
}
}
}
this.instance.fn();
});
it("a test", function() {
expect(this.instance.data).toBe("fake data");
});
});
(如果我覆盖的诺言,我没有处理冲洗或类似的东西)。 但是现在,当FN()将改变这一
class Foo {
async fn() {
try {
this.data = await this.someService.somefn();
} catch() {
}
}
}
覆写我在之前做过的每一件事情都不会奏效。 所以我在这里的问题是...我可以做的事情就像我承诺用async/await代码风格覆盖所做的一样。
这里的想法是,我想模拟出外部依赖项,我可以使用单元测试的函数,比如“someService”。在特定的单元测试中,我期望一些Service.someFn能够正常工作,并且我可以嘲笑它的响应。其他测试检查“someFn”的有效性。