我正在使用笑话和酶来测试我的应用。我的功能是:
const someFunc = (arg1, arg2, arg3) => {
arg2.someOtherFunc(arg3);
}
现在,我想编写函数someFunc
的测试,我模拟了someOtherFunc
,然后测试是否要用一些arg3调用它,但是我无法了解应该写断言?
我的测试应该断言在someFunc
之后,它应该使用一些参数来调用someOtherFunc
。
答案 0 :(得分:1)
expect(someOtherFunc).toHaveBeenCalledWith('your args');
答案 1 :(得分:1)
在您的情况下,您要将函数作为回调传递 并且在测试中,您必须模拟它,并检查它是否被调用了n次或被调用了n次或使用特定参数进行了调用。
在下面检查此示例:
// your function
const someFunc = (arg1, arg2, arg3) => {
arg2.someOtherFunc(arg3);
}
// your test file
it("works", () => {
const arg1 = 'im just any value doesnt matter';
const arg2 = {
someOtherFunc: jest.fn(),
};
const arg3 = 'argument';
someFunc(arg1, arg2, arg3);
// some assertions you can use
expect(arg2.someOtherFunc).toBeCalled();
expect(arg2.someOtherFunc).toBeCalledWith('argument');
expect(arg2.someOtherFunc).toHaveBeenCalledTimes(1);
});