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

事件绑定(bind)看起来像

$('.page').live('click', function() { page_clicked( $(this) ) });
page_clicked是私有(private)方法,但它需要另一个模块的公共(public)方法。

这是 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编写此测试?

最佳答案

其原因是QUnit没有 spy 程序或模拟程序。但是您可以使用Sinon.JS模拟框架。使用sinon spy,您的测试应如下所示:

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

关于javascript - QUnit中是否有spyOn类似物?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8869724/

10-11 23:39