2016-08-29 21 views
0

私はテストしようとしているTypeScript(最終的に実際のJavaScriptをテストする)メソッドを持っています。それはかなり簡単です:新しいオブジェクトにジャスミンスパイ?

private static myMethod(foo: IFoo): void { 
    let anInterestingThing = new InterestingThing(); 
    foo.bar = anInterestingThing.getSomethingCool(); 
} 

私はgetSomethingCoolが呼び出されたことをテストしたいと、通常、私はちょうど簡単なspyOnを行うだろうが、私は新しいanInterestingThingオブジェクトをスパイする方法を見つけ出すことはできません。これを行う最善の方法は何ですか?

+0

これはできません。オブジェクトを新規に作成するときに参照がどのようになるかを知ることはできません。私が知る限り、これは単にテストできないコードです。いずれかのファクトリ関数を持つ依存性注入でそれをリファクタリングします。 –

答えて

0

getSomethingCoolは、プロトタイプの方法であれば、あなたは

jasmine.spyOn(InterestingThing.prototype, "getSomethingCool"); 

を書くことができがしかし、これは実際には非常に壊れやすいことになるだろう。 InterestingThingは、getSomethingCoolをインスタンスメンバにするか、静的コンストラクタなどの間にプロトタイプ関数への参照を取得するように変更することがあります。

関連する問題