首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为fs.readdir编写单元测试

如何为fs.readdir编写单元测试
EN

Stack Overflow用户
提问于 2020-11-12 08:46:48
回答 1查看 147关注 0票数 0

我想问一下如何为这个函数编写单元测试。我试着用mock-fs来模拟它,并不断得到结果的undefined。对不起,我是新来JavaSCript的。

代码语言:javascript
复制
async getAllSongs(): String[] {
  const songs = await readdir(this.storageDirectory);
  return songs;
}
EN

回答 1

Stack Overflow用户

发布于 2020-11-12 09:35:47

好的,看起来你的函数是一个对象/类的一部分,但是因为我不是100%的,所以我将使用一个人为的例子。

假设在我的sample.js文件中,我有一些代码,如下所示:

代码语言:javascript
复制
//sample.js

const fs = require("fs").promises;

async function getAllSongs() {
  const songs = await fs.readdir(".");
  return songs;
}

module.exports = { getAllSongs };

要模拟fs.readdir,您可以使用jest.mock并将其替换为返回promise的函数,因为这实际上就是fs.readdir所做的。

代码语言:javascript
复制
//sample.test.js

const fs = require("fs").promises;
const { getAllSongs } = require("./sample.js");

fs.readdir = jest.fn(() => Promise.resolve(["lol.js", "lmao.js", "wow.txt"]));

test("tests stuff", async () => {
  const result = await getAllSongs();
  expect(result).toEqual(["lol.js", "lmao.js", "wow.txt"]);
});

因为我使用jest中的假函数来清除fs.readdir,所以在执行getAllSongs时,jest将使用我的假函数而不是原来的实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64796309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档