1

Jasmine スパイを初めて使用するので、明らかな何かが欠けていることを願っています。私がやりたいことは、次のように定義した関数への呼び出しを追跡することです。

window.myFunction = ->

この関数を呼び出すクラス メソッドがあります。メソッドは正常に機能し、ほとんどの側面をテストできますが、次のエラーが発生します。

beforeEach ->
  spyOn(window, 'myFunction').andCallThrough()

it 'should do that thing', ->
  MyClass.makesCallToMyFunction
  expect(window.myFunction).toHaveBeenCalled()

私は何を間違っていますか?私は SO で多くの例を見てきましたが、それらの多くは spyOn(window, 'myFunction')...expect(window.myFunction) セットアップ/仕様を使用しています。

どんな洞察も大歓迎です!ありがとう。

4

1 に答える 1

2

これは失敗します:

it 'should do that thing', ->
  MyClass.makesCallToMyFunction
  expect(window.myFunction).toHaveBeenCalled()

はメソッド呼び出しではないため、関数MyClass.makesCallToMyFunctionへの単なる参照makesCallToMyFunctionです。引数なしで CoffeeScript 関数/メソッドを呼び出したい場合は、括弧を含める必要があります。そうしないと、関数を呼び出したいことが CoffeeScript にわかりません。

MyClass.makesCallToMyFunction()
于 2012-12-28T19:35:00.290 に答える