我正在使用 jasmine 来测试我的 javascript,并且我发现了一个很难规范的案例。我有这个函数直接传递给处理程序:
filters.find('#per_page').change(checkList.filter);
现在,我想监视它,看看当我改变它时它是否被调用:
describe("when I change the number of items per page", function() {
beforeEach(function()
spyOn(checkList, 'filter');
$('#per_page').val('50').trigger('change');
});
it("filters the results list", function() {
expect(checkList.filter).toHaveBeenCalled();
});
});
此测试失败。令人惊讶的是,如果我将上面的代码更改为:
filters.find('#per_page').change(function() { checkList.filter(); });
它通过了。有没有办法监视传递的这些函数,还是我必须求助于匿名函数案例?