ジャスミンを使用して 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(); });
それは通過します。渡されたそのような関数をスパイする方法はありますか、または匿名関数のケースに頼る必要がありますか?