2016-08-29 39 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成为实例成员,或者在其静态构造函数期间捕获对原型函数的引用等。