在我的生产代码中,我有几行代码宣布了两个与Google Analytics一起使用的功能:
declare function ga(command: string, type: string, exceptionDetails: Object);
declare function ga(command: string, type: string, category: string, action: string, label: string)
在我的单元测试代码中,我想实现这些函数的模拟,以便它什么都不做。但是,我的app.tests.ts引用了app.ts,所以我不能简单地做一些像
这样的事情var ga = (command: string, type: string, exceptionDetails: Object) => { };
因为这是一个重复的定义。
如果不将ga定义添加到我的单元测试运行器html中,我怎样才能实现这一目标?
答案 0 :(得分:0)
您可以通过替换其值来覆盖该函数。你在你的例子中几乎这样做,但是因为你已经把var
放在它前面,它看起来像意外的重复。
删除var
,然后只有:
ga = (command: string, type: string, exceptionDetails: Object) => { };
插图的简化示例:
var ga = (command: string, type: string, exceptionDetails: Object) => { alert('hi'); };
// ...
ga = (command: string, type: string, exceptionDetails: Object) => { alert('overridden'); };
// Alerts "overridden"
ga('a', 'b', {});