我已经在Stackoverflow上查看了与此相关的其他几个问题,但我似乎无法解决我的问题。无论我做什么,似乎Meteor.call都没有被调用,或者我可以调用它(例如在下面的代码示例中),无论{{1}是什么设置为,我继续得到以下错误:
jasmine.DEFAULT_TIMEOUT_INTERVAL
这是我的Jasmine测试的样子:
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
我的addTask函数如下所示:
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();
});
});
我已经坚持了几个星期,任何人都可以提供的任何帮助都会非常有帮助。
答案 0 :(得分:2)
hander中的期望永远不会被执行,因为Jasmine不会调用原始的.call()方法。要使它工作,而不是spyOn(Meteor, "call");
,你应该编写spyOn(Meteor, "call").and.callThrough();
,它将在执行Jasmine间谍逻辑后调用原始处理程序。