【发布时间】:2021-09-15 16:13:22
【问题描述】:
我正在尝试对我用 jest 编写的小型 NodeJS 应用程序进行单元测试,但我的断言遇到了一些问题。
我正在尝试测试的功能的代码:
sendData(process.env.API_HOST_DOMAIN, process.env.API_SENSORS_ENDPOINT, payload).then(() => {
Buffer.clear();
}).catch(() => {
Buffer.write(temps);
})
sendData 函数是一个执行以下操作的函数:
import axios from 'axios';
const sendData = (baseUrl, path, data) => {
return axios.post(path, {
'data': data
}, { baseURL: baseUrl });
}
export default sendData;
然后在我的单元测试中,我尝试使用模拟 axios 调用
axios.post.mockImplementation(() => Promise.reject());
App.run();
expect(Buffer.write).toHaveBeenCalled();
当我以详细模式运行此程序时,console.log()s 放置在 catch 块中。我可以看到它到达了那部分。然而,断言仍然失败。在我看来,我编写测试的方式有些不对劲,但是我无法弄清楚它是什么。
【问题讨论】:
标签: node.js unit-testing jestjs