【发布时间】:2019-06-24 12:06:26
【问题描述】:
我正在尝试测试一个使用另一个异步函数返回的数据的异步函数。这是解释我的问题的代码:
StudentInfo.js
export async function getData() {
//studentData imported from another file
return new Promise(resolve => {
setTimeout(() => {
resolve(studentData);
}, 5000);
});
}
export async function filterStudents() {
const studentData = await StudentInfo.getData();
//computations
return filteredData; //object
}
StudentInfo.test.js
import * as studentInfo from "src/StudentInfo.js"
describe("StudentInfo" , () => {
test("student data correctly filtered", async () => {
const studentData = [
{
name: Sarah Marshall,
id: srhmar451
},
{...}
];
expectedData = { [...], [...]};
const spy = jest.spyOn(studentInfo, "getData");
spy.mockReturnValue(studentData);
await expect(studentInfo.filterStudents()).toEqual(expectedData);
});
});
我的测试失败了,因为预期的返回值是Promise {}。有人可以帮我为filterStudents() 函数编写一个测试吗?我已经被困在这太久了。
【问题讨论】:
-
既然你在监视异步函数,你应该使用
spy.mockResolvedValue(studentData)
标签: javascript unit-testing jestjs enzyme