Есть ли в QUnit аналог spyOn? - PullRequest
12 голосов
/ 15 января 2012

Я пишу спецификации для разных тестовых случаев для Jasmine и QUnit, чтобы сравнить их, и они выглядели одинаково, прежде чем мне нужно было написать тест, чтобы проверить, связано ли событие с элементом.

Привязка к событиювыглядит как

$('.page').live('click', function() { page_clicked( $(this) ) });

page_clicked - это закрытый метод, но он требует открытого метода другого модуля.

Вот спецификация Jasmine:

it('should bind events to pages', function() {
    spyOn( search, 'get_results' );

    $('.page:eq(0)').trigger('click');

    expect( search.get_results ).toHaveBeenCalled();
});

Этот тест работает.Сейчас я пытаюсь написать такой же тест для QUnit и не могу найти ничего похожего на spyOn.Как написать этот тест для QUnit?

1 Ответ

9 голосов
/ 15 января 2012

Его причина. У QUnit нет шпионов или издевательств. Но вы можете использовать макет Sinon.JS . Ваш тест должен выглядеть следующим образом: sinon spy :

var spy = sinon.spy(search, 'get_results');
sinon.assert.calledOnce(spy);
...