gpt4 book ai didi

javascript - 在 Meteor 中使用 Jasmine 测试异步函数

转载 作者:行者123 更新时间:2023-11-29 21:44:21 25 4
gpt4 key购买 nike

我已经在 Stackoverflow 上查看了其他几个与此相关的问题,但我似乎仍然无法解决我的问题。无论我做什么,似乎 Meteor.call 都没有被调用,或者如果我可以调用它(例如在下面的代码示例中),无论 jasmine.DEFAULT_TIMEOUT_INTERVAL 是什么 设置为,我继续得到以下错误:

错误:超时 - 未在 jasmine.DEFAULT_TIMEOUT_INTERVAL 指定的超时内调用异步回调。

这是我的 Jasmine 测试的样子:

it("Should be created and not assigned to anyone", function(done) {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000000;

// Confirm that the User Has Logged in
expect(Meteor.userId()).not.toBeNull();

var contact = null;
var text = "This is a testing task";
spyOn(Tasks, "insert");
spyOn(Meteor, "call");

Meteor.call('addTask', contact, text, function(error, result) {
expect(error).toBeUndefined();
expect(result).not.toBeNull();
done();
});

expect(Meteor.call).toHaveBeenCalled();

});

});

我的 addTask 函数如下所示:

Meteor.methods({

addTask: function (contact, text) {
... // addTask Code, removed for brevity
},
});

我已经坚持了几个星期,任何人都可以提供的任何帮助都会非常有帮助。

最佳答案

处理程序中的期望永远不会执行,因为 Jasmine 不会调用原始的 .call() 方法。为了让它工作,而不是 spyOn(Meteor, "call"); 你应该写 spyOn(Meteor, "call").and.callThrough(); 这将在执行 Jasmine spy 逻辑后调用原始处理程序。

关于javascript - 在 Meteor 中使用 Jasmine 测试异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714532/

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