Как я могу протестировать Cookies.get с помощью шутливого тестирования

У меня есть папка util.js, в которой я вызываю функцию

const fullObjectStr = Cookies.get(cookieName);

Итак, я хочу проверить это с помощью шутки. Как я могу это сделать?

Я пробовал несколько вещей из этого вопроса: Как издеваться над Cookie.get( 'язык') в JEST, но это не работает.

2
Sveto 22 Апр 2020 в 14:54

1 ответ

Вы можете использовать jest.spyOn(object, methodName), чтобы имитировать Cookies.get метод.

Например. main.js:

import Cookies from 'js-cookie';

export function main(cookieName) {
  const fullObjectStr = Cookies.get(cookieName);
  console.log(fullObjectStr);
}

main.test.js:

import { main } from './main';
import Cookies from 'js-cookie';

describe('61364508', () => {
  it('should pass', () => {
    const getSpy = jest.spyOn(Cookies, 'get').mockReturnValueOnce('123');
    const cookieName = 'sid';
    main(cookieName);
    expect(getSpy).toBeCalledWith(cookieName);
    getSpy.mockRestore();
  });
});

Результаты модульного теста:

 PASS  stackoverflow/61364508/main.test.js (14.388s)
  61364508
    ✓ should pass (43ms)

  console.log stackoverflow/61364508/main.js:5
    123

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        16.256s

Исходный код: https://github.com /mrdulin/react-apollo-graphql-starter-kit/tree/master/stackoverflow/61364508

2
slideshowp2 23 Апр 2020 в 07:13