Мне нужно проверить эту функцию:
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
});
});
Я попытался создать новую шутливую функцию 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()
не может ссылаться на любые
переменные вне области видимости.