У меня есть приложение из командной строки. Файл имеет несколько функций, но как я могу проверить строку, вызывающую первую функцию. Например, функция child (ch) {console.log (ch); } функция main (a) {...

1
user10518298 19 Янв 2021 в 13:44

1 ответ

Лучший ответ

Если вы не против разделить файл на два разных файла:

index.js

import main from './main.js';

main(24);

main.js

function child(ch) {
  console.log(ch);
}


function main(a) {
  console.log(a);
  child('1');
}

export default main;

Затем вы можете имитировать функцию main () из main.js и проверить, вызывается ли она при импорте index.js :

index.spec.js

const mockedMain = jest.fn();

jest.mock('../main.js', () => ({
  default: () => mockedMain(),
}));

describe('test that main is called on index.js import', () => {
  it('should call main', () => {
    require('../index.js');
    expect(mockedMain).toHaveBeenCalled();
  });
});

Я не знаю, как сделать то же самое, сохранив main () в том же файле.

1
remeus 19 Янв 2021 в 11:32