Javascript 模块内单个函数的Jest Mock实现
大家好,我只是想用jest来开我的image min模块的玩笑,我遇到的问题是,当使用imagemin时,它会在一个子进程中创建自己的tmp文件夹,因为我使用的是模拟fs,所以它只会破坏路径。所以我只想让模块中的一个函数返回一个预先确定的结果,然后传递给另一个函数 到目前为止,在我的玩笑里Javascript 模块内单个函数的Jest Mock实现,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,大家好,我只是想用jest来开我的image min模块的玩笑,我遇到的问题是,当使用imagemin时,它会在一个子进程中创建自己的tmp文件夹,因为我使用的是模拟fs,所以它只会破坏路径。所以我只想让模块中的一个函数返回一个预先确定的结果,然后传递给另一个函数 到目前为止,在我的玩笑里 it('Should compress jpg', () => { expect.assertions(1); let mock = jest.fn(); mock.mockRe
it('Should compress jpg', () => {
expect.assertions(1);
let mock = jest.fn();
mock.mockReturnValueOnce(true);
utility.compress = mock;
let opts = {};
let dest = './tmp/dest/img';
let file = path.join(dest, 'jpeg_img.jpg');
return utility.imageCompress(['./dummy_data/img/*.jpg'], dest, opts)
.then(data => {
expect(data).toEqual([]);
expect(fs.existsSync(file)).toBe(true);
expect(fs.statSync('./dummy_data/img/jpeg_img.jpg').size)
.toBeLessThan(fs.statSync(file).size);
});
});
因此,实用程序.imageCompress
调用压缩函数
我正在导出函数,但仍然得到utility.compress.mockImplementation不是函数
任何帮助都会很好,谢谢我不确定你现在是否解决了这个问题,因为已经过去2年了。您是否检查了utility.imageCompress方法是否真的调用了compress?压缩是实用程序的一个可公开访问的成员,而不是闭包中私有函数的引用?