helpers.ts
export function doThing() {
// some stuff
}
myClass.ts
___
import { doThing } from './helpers.ts'
class myClass {
function someFunction(firstArg, secondArg) {
const thing = someThirdThing;
doThing(firstArg, secondArg, someThirdArg);
}
}
我试过的
myClass.spec.ts
import * as helpers from './helpers.ts'
describe('someFunction' () => {
it('calls doThing with the correct parameters', () => {
spyOn(helpers, 'doThing');
const myClass = new MyClass();
myClass.someFunction(first, second);
expect(helpers.doThing).toHaveBeenCalledWith(first, second, someThirdThing);
}
}
___
当我调试时,我最终得到的是我可以看到我的调试器正在进入实际的方法本身,这很好,因为我希望 jest 调用 spy 的实际实现。但是我得到一个'预期:我的断言,'调用:0'
我已经把自己逼疯了,并认为自己在测试中至少有一半体面。但是对于我的生活来说,当涉及到监视不是通过类注入的导出函数时,我最终感到困惑。
我看过:SpyOn 单独导出 ES6 函数,但据我了解,它没有跟踪,因为我的示例有不同的模块。预先感谢您的善意回应。