如果有人能向我澄清如何从CLI 应用程序的查询器插件测试异步代码,将不胜感激。
模块导出updateView
函数,它在内部调用 async inquirer.prompt
。
const inquirer = require("inquirer");
const getAnswer = async (request) => {
const answer = await inquirer.prompt(request);
return answer;
}
想用Jest测试异步代码是否有效,但是我看到的所有Jest示例都显示了只有当我将异步函数作为参数传递时才能测试异步代码的方法。
所以我的功能必须重构为:
获取答案.js
const getAnswer = async (request, callback) => {
const answer = await callback(request);
return answer;
}
main.js
const inquirer = require("inquirer");
const getAnswers = require("./getAnswers");
const main = async () => {
const request = "abc";
const result = await getAnswers(request, inquirer.prompt);
...
}
然后测试文件将如下所示:
测试.js
const getAnswers = require("./getAnswers");
test("async code works", async () => {
//Arrange
const mock = async () => {
return "Correct Answer";
};
//Act
const result = await getAnswers("abc", mock);
//Assert
expect(result).toEqual("Correct Answer";);
});
如果有人可以建议是否有一种测试异步函数而不将其作为回调传递的方法,将不胜感激?
如果方法本身是正确的。