【发布时间】:2016-08-29 21:27:45
【问题描述】:
我在 AngularJS 1.X 项目中使用 Typescript。我将不同的 Javascript 库用于不同的目的。为了对我的源代码进行单元测试,我想使用 Typings(= 接口)来存根一些依赖项。我不想使用 ANY 类型,也不想为每个接口方法写一个空方法。
我正在寻找一种方法来做这样的事情:
let dependency = stub(IDependency);
stub(dependency.b(), () => {console.log("Hello World")});
dependency.a(); // --> Compile, do nothing, no exception
dependency.b(); // --> Compile, print "Hello World", no exception
我现在的痛苦是我要么使用any 并实现在我的测试用例中调用的所有方法,要么我实现接口并实现完整的接口。没用的代码太多了:(。
如何生成每个方法的实现都为空且类型化的对象?我使用 Sinon 进行模拟,但我也可以使用其他库。
PS:我知道 Typescript 会删除接口...但我仍然想解决这个问题:)。
【问题讨论】:
标签: javascript angularjs typescript sinon stubbing