这让我困扰了一段时间。我在同一个文件中有两个函数。
//fun.ts
export function fun1(){
let msg = fun2();
return msg;
}
export function fun2(): string{
return "Some message";
}
我有一个打印fun2并打电话给fun1的打字稿规范。
//fun.spec.ts
import * as Fun from 'fun';
describe('Stubing', () => {
it('should stub the return value', () => {
spyOn(Fun, 'fun2').and.returnValue("A different message");
expect(Fun.fun1()).toEqual("A different message")
});
});
但是当我运行规范时,我得到的输出是
Failures:
1) Stubing should stub the return value
1.1) Expected 'Some message' to equal 'A different message'.
我用打字稿写了测试,然后我有一个成功转换并运行茉莉花规格的gulp脚本。一切正常,我唯一能弄明白的是间谍不工作的原因。我们将不胜感激。
答案 0 :(得分:1)
我终于弄明白了。在fun.ts中,我直接调用fun2对象,但是我的Jasmine规范无法访问该对象。 Jasmine规范可以访问的唯一对象是exports对象。如果我想让间谍工作,我需要在exports对象上调用fun2。
//fun.ts
export function fun1(){
let msg = exports.fun2();
console.log(msg);
}
export function fun2(): string{
return "Some message";
}
现在,当规范执行时,我看到了
.
1 spec, 0 failures