0

如何通过玩笑测试来测试 Cookies.get

我有 util.js 文件夹,我在其中调用函数

const fullObjectStr = Cookies.get(cookieName);

所以,我想用玩笑来测试它。我怎样才能做到这一点?

我已经从这个问题中尝试了一些事情:How to mock Cookie.get('language') in JEST但它不起作用。

4

1 回答 1

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

于 2020-04-23T04:13:44.737 回答