私の JS でこの Jasmine テストを実行する方法がわかりません。また、他の ppl にもこの問題があります。多分私は間違っているか、不可能かもしれません-これに関するヒントは見つかりませんでした。この問題は、- 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") )
残念ながら、関数は $("#button-id") で呼び出されず、代わりに $(this) で呼び出されるため、このテストは失敗します (私の Jasmine テストで最初に変数に参照を格納するなどのバリエーションがあります)。および $(this) != $("#button-id")。
このテストを達成する方法を誰か教えてもらえますか? 私はかなり迷っています。jQuery と $(this) に関する Remy Sharp の素晴らしい記事でさえ、それ以上は理解できませんでした。