Ответ 1
Его причина QUnit не имеет шпионов или издевок. Но вы можете использовать Sinon.JS mocking framework. Ваш тест должен выглядеть так: sinon spy:
var spy = sinon.spy(search, 'get_results');
sinon.assert.calledOnce(spy);
Я пишу спецификации для разных тестовых примеров для Jasmine и QUnit, чтобы сравнить их, и они выглядели одинаково, прежде чем мне нужно было написать тест, чтобы проверить, привязано ли событие к элементу.
Связывание событий выглядит как
$('.page').live('click', function() { page_clicked( $(this) ) });
page_clicked
- частный метод, но он вызывает общедоступный метод другого модуля.
Вот спецификация Жасмин:
it('should bind events to pages', function() {
spyOn( search, 'get_results' );
$('.page:eq(0)').trigger('click');
expect( search.get_results ).toHaveBeenCalled();
});
Этот тест работает. Теперь я пытаюсь написать тот же тест для QUnit и не могу найти ничего похожего на spyOn. Как написать этот тест для QUnit?
Его причина QUnit не имеет шпионов или издевок. Но вы можете использовать Sinon.JS mocking framework. Ваш тест должен выглядеть так: sinon spy:
var spy = sinon.spy(search, 'get_results');
sinon.assert.calledOnce(spy);