我有一个函数的方法签名
//1 const changeFuncInObj = (myObj, someBool) => {
//2 myObj.anObjFunction = (event) => {
//3 return externalFunction(event.data) && someBool
//4 }
//5 }
我想测试此函数,但由于不正确的模拟,我无法进入第3行
我的测试文件如下:
test('test function inside object', () => {
const myObj = {
anObjFunction: jest.fn().mockImplementation(() => {
return {
externalFunction: jest
.fn()
.mockReturnValueOnce(true),
}
}),
}
let result = changeFuncInObj(myObj, true)
expect(result).toEqual(undefined) // should be true or false based on `externalFunction` and `someBool`
})
是否有一种方法可以模拟对象的所有可能的内部函数、布尔变量和内部函数值?
1条答案
按热度按时间f3temu5u1#
在
changeFuncInObj
中,您将myObj
的方法anObjFunction
重新分配给其他函数。这是对您所拥有的代码的测试:
函数
changeFuncInObj
不返回任何内容,因此结果将始终为undefined
。如果
externalFunction
看起来像这样,测试可以像这样: