Я рассмотрел несколько других вопросов, связанных с этим в Stackoverflow, но я все еще не могу решить свою проблему. Независимо от того, что я, кажется, делаю, кажется, что либо Meteor.call не вызывается, либо если я могу заставить его быть вызванным (например, в примере кода ниже), независимо от того, для чего установлен jasmine.DEFAULT_TIMEOUT_INTERVAL
, I продолжать получать следующее сообщение об ошибке:Проверка функции async с Jasmine in Meteor
Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
Это то, что мой жасмин тест выглядит следующим образом:
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
},
});
Iv застрял на этом в течение недель, любая помощь, которую любой может предоставить, будет очень полезной.
Ничего себе. Это сработало отлично. Функция теперь выдает ошибку, но, по крайней мере, ожидания внутри обработчика НАКОНЕЧНО ПРИЗЫВАЮТСЯ! Спасибо, сэр! – Salman
Не могли бы вы объяснить мне, почему мы когда-нибудь будем использовать только 'spyOn (Meteor,« call »)' и не хотим вызыватьThrough? – Salman
Иногда (на самом деле, в большинстве случаев, я думаю) люди хотят проверить, только если был вызван какой-то метод, или проверить, сколько раз он был вызван, они сами тестируют сам метод с различными тестами. –