我正在为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/