QUnit中有spyOn类似物吗?

时间:2012-01-15 12:48:31

标签: javascript unit-testing jasmine qunit 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写这个测试?

1 个答案:

答案 0 :(得分:9)

其原因QUnit没有间谍或嘲笑。但是你可以使用Sinon.JS模拟框架。您的测试应该使用sinon spy

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