我不能在node.js中创建带有模拟jest的json文件。
我试过这个:
const mock = require('mock-fs');
mock({
'test.json': [{ 'name':'John', 'age':30, 'car':null }]
});但这不起作用,他不喜欢在文件内容中放入的参数。
你知道是怎么做的吗?感谢‘s
发布于 2020-04-03 03:39:25
因此,这里有一个示例测试用例。不知道你是否已经弄明白了,但这是我用过的。这是typescript格式的,但您可以将其转换为js
import mock from 'mock-fs';
import pump from 'pump';
import * as util from 'util';
const fileReadPromisfy = util.promisify(fs.readFile);
....
describe('Test suite for bucket functionality', () => {
beforeEach(() => {
mock({
'sample-file.txt': 'Content of the sample file',
'sample-upload.txt': '',
});
});
test('test mock fs', async (done) => {
pump(fs.createReadStream('sample-file.txt'), fs.createWriteStream('sample-upload.txt'));
fileReadPromisfy('sample-upload.txt')
.then((data) => {
expect(fs.readFileSync('sample-upload.txt')).toBeDefined();
done();
})
.catch((err) => {
done();
});
});
});发布于 2020-05-29 15:57:50
将上面找到的gist修改为在jest中使用:
将其添加到您的jest.setup.js
// mock file
class MockFile {
constructor ({ name = 'mock.jpg', size = 1024, type = 'image/jpg', lastModified = new Date() }) {
var blob = new Blob(['a'.repeat(size)], { type })
blob.lastModifiedDate = lastModified
return new File([blob], name)
}
}
global.MockFile = MockFile在测试中使用它,如下所示:
const mockFile = new MockFile({
name: 'testFile',
type: 'image/jpg',
size: 512
})https://stackoverflow.com/questions/53265306
复制相似问题