[英]Testing an async function with Jasmine in Meteor
我在 Stackoverflow 上查看了與此相關的其他幾個問題,但似乎仍然無法解決我的問題。 無論我似乎做什么,似乎都沒有調用 Meteor.call,或者如果我可以調用它(例如在下面的代碼示例中),無論jasmine.DEFAULT_TIMEOUT_INTERVAL
設置為什么,我繼續收到以下錯誤:
Error: Timeout - Async callback was not invoked within timeout specified by 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 間諜邏輯后調用原始處理程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.