【发布时间】:2019-05-10 17:24:12
【问题描述】:
我需要测试这个功能:
import dependency from 'dependency';
export default values => (dispatch) => {
dispatch(dependency(values));
// More code
};
我有一个测试断言dispatch 称为dependency:
import functionToTest from 'function-to-test';
jest.mock('dependency', () => () => 'dependency res');
describe('functionToTest', () => {
const dispatch = jest.fn();
functionToTest({ foo: 'bar' })(dispatch);
test('test', () => {
expect(dispatch.mock.calls[0][0]).toBe('dependency res');
});
});
我需要断言dependancy 是用{ foo: 'bar' } 调用的。我尝试命名我的依赖模拟,但是当我 console.log 它是未定义的:
import functionToTest from 'function-to-test';
const dependencyMock = jest.mock('dependency', () => () => 'dependency res');
describe('functionToTest', () => {
const dispatch = jest.fn();
functionToTest({ foo: 'bar' })(dispatch);
test('test', () => {
expect(dispatch.mock.calls[0][0]).toBe('dependency res');
console.log(dependencyMock.mock.calls) // undefined
});
});
我试图创建一个新的 jest 函数 spy 希望我可以检查它的参数,但这返回了一个错误
import functionToTest from 'function-to-test';
const spy = jest.fn(() => 'save-form-data');
const dependencyMock = jest.mock('dependency', () => spy);
describe('functionToTest', () => {
const dispatch = jest.fn();
functionToTest({ foo: 'bar' })(dispatch);
test('test', () => {
expect(dispatch.mock.calls[0][0]).toBe('dependency res');
console.log(dependencyMock.mock.calls) // undefined
});
});
jest.mock()的模块工厂不允许引用任何 范围外的变量。
【问题讨论】:
标签: javascript unit-testing mocking jestjs