QUnit中有spyOn类似物吗?

Dan*_*J F 12 javascript unit-testing qunit spy jasmine

我正在编写针对Jasmine和QUnit的不同测试用例的规范来比较它们,在我需要编写测试以检查事件是否绑定到元素之前它们看起来相同.

事件绑定看起来像

$('.page').live('click', function() { page_clicked( $(this) ) });
Run Code Online (Sandbox Code Playgroud)

page_clicked 是一个私有方法,但它需要另一个模块的公共方法.

这是一个茉莉花规格:

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

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

    expect( search.get_results ).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)

这个测试工作.现在我正在尝试为QUnit编写相同的测试,但找不到与spyOn类似的任何内容.如何为QUnit编写此测试?

And*_*rle 9

它的原因QUnit没有间谍或嘲笑.但是你可以使用Sinon.JS模拟框架.使用sinon间谍你的测试应该是这样的:

var spy = sinon.spy(search, 'get_results');
sinon.assert.calledOnce(spy);
Run Code Online (Sandbox Code Playgroud)