Как протестировать jQuery с Jasmine для $ ("# element-id"), если используется как $ (this)

Я не знаю, как запустить этот тест Jasmine для моего JS, и, конечно же, у других людей есть эта проблема. Может я делаю что-то не так, а может это невозможно - я не нашел на это ни малейшего намека. Проблема связана с тем, что - в jQuery - $ (this) не совпадает с элементом, выбранным, например, $ ("# this-id"):

Javascript:

[..]
$("#button-id").on("click", function(e) { callSomeFunctionWith( $(this) ); } );

Jasmine-Test (CoffeeScript):

[..]
spyOn some.object, "callSomeFunctionWith"
spyOnEvent( $("#button-id"), 'click' )

$("#button-id").trigger( "click" )
expect( some.object.callSomeFunctionWith ).toHaveBeenCalledWith( $("#button-id") )

К сожалению, этот тест не проходит (с любыми вариантами, такими как сохранение ссылки сначала в переменной в моем тесте Jasmine) , потому что функция НЕ вызывается с помощью $ ("# button-id"), а вместо этого вызывается с помощью $ (this) и $ (this)! = $ ("# button-id").

Кто-нибудь может сказать мне, как выполнить этот тест? Я совсем заблудился. Даже замечательная статья Реми Шарпа о jQuery и $ (this) не продвинула меня дальше.

5
задан RSeidelsohn 29 February 2012 в 19:38
поделиться