0
У меня есть вид с базой, который имеет пользовательские события для keyup
и keydown
событий.Имитировать и протестировать событие нажатия клавиши Mocha, Chai, Sinon?
events: {
"keyup .search-box": "changeTextTimer",
"keydown .search-box": "cancelTextTimer"
},
Я пишу модульные тесты, чтобы проверить, вызваны ли эти обратные вызовы после нажатия клавиш или нажатия клавиш. Я использую jQuery для запуска ключевого события.
it("should call cancelTextTimer", function() {
var searchBox = new SearchBoxView({el: $(HTML),}).render();
var e = $.Event("keydown");
e.which = 65;
searchBox.$(".search-box").trigger(e);
var changeTextTimer = sinon.spy(searchBox, "cancelTextTimer");
_.defer(changeTextTimer.restore);
changeTextTimer.should.have.been.calledOnce;
});
Однако я получаю
AssertionError: expected cancelTextTimer to have been called exactly once, but
it was called 0 times: Got value cancelTextTimer but expected a value undefined undefined
Вы настраиваете свой шпион после того, как вы вызвали щелчок, что происходит, когда вы переместите его вторая строка в вашей тестовой функции? –
@HenrikAndersson это ответ материал. –
@HenrikAnderson Хм все равно дает мне ту же ошибку – ElGatoGabe