我正在使用jest编写测试用例。我的一个函数使用uuid,因此它不是纯函数。代码是这样的:
const myFunc = () => {
const a = uuid();
return a;
}
Run Code Online (Sandbox Code Playgroud)
我正在编写我的测试用例:
test('should return a unique id value', () => {
const a = uuid();
expect(myFunc()).toEqual(a);
});
Run Code Online (Sandbox Code Playgroud)
显然它不会工作,因为它每次都会生成一个唯一的 ID。如何为此类功能编写测试用例。
[编辑]
我不想测试这个uuid
函数,因为它总是会生成一个新的 id,而且它是一个已经在测试中的库函数。我想测试另一个使用uuid
、生成新对象并返回该对象的函数。这个函数被其他一些函数使用等等,这使我无法测试任何一个,因为初始对象的 id 与我在测试时使用的 id 不同。
最近迁移mocha
到jest
,我遇到了一个问题.我的测试中有很多警告:
[SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()
现在,将以下行添加到每个文件可以解决问题,但仅针对该特定测试文件:
jest.mock('node-uuid', () => ({ v4: jest.fn(() => 1) }));
我希望有一种方法可以node-uuid
全局模拟所有测试而不是单个文件?我已经完成了一堆搜索,并在我的设置文件中尝试了不同的技术,但无济于事.