我有这个反应
export function fetchPosts() {
const request = axios.get(`${WORDPRESS_URL}`);
return {
type: FETCH_POSTS,
payload: request
}
}
在这种情况下,如何测试axios?开玩笑说那里有一个异步代码的用例,在那里他们使用了模拟功能,但是我不知道我是否可以用axios做到这一点?参考:https : //facebook.github.io/jest/docs/tutorial-
async.html
到目前为止,我已经测试了它是否返回了正确的类型
it('should dispatch actions with the correct type', () => {
store.dispatch(fetchPosts());
let action = store.getActions();
expect(action[0].type).toBe(FETCH_POSTS);
});
我不知道如何传递模拟数据并测试它是否返回,但是有人有任何想法吗?
先感谢您
我使用了axios-mock-adapter。在这种情况下,服务在./chatbot中描述。在模拟适配器中,您指定使用API端点时返回的内容。
import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import chatbot from './chatbot';
describe('Chatbot', () => {
it('returns data when sendMessage is called', done => {
var mock = new MockAdapter(axios);
const data = { response: true };
mock.onGet('https://us-central1-hutoma-backend.cloudfunctions.net/chat').reply(200, data);
chatbot.sendMessage(0, 'any').then(response => {
expect(response).toEqual(data);
done();
});
});
});
您可以在此处查看整个示例:
服务:https: //github.com/lnolazco/hutoma-
test/blob/master/src/services/chatbot.js
测试:https :
//github.com/lnolazco/hutoma-
test/blob/master/src/services/chatbot.test.js
问题内容: 我在带有打字稿的React Router v5.1.2中使用UseHistory挂钩吗?运行单元测试时,我遇到了问题。 TypeError:无法读取未定义的属性“ history”。 我也尝试使用,但仍然无法正常工作。 问题答案: 浅化使用的反应功能组件时,我需要相同的内容。 在我的测试文件中解决了以下模拟问题:
我有下面的打字稿类,我想测试在笑话。 这是我的测试: 如何模拟MyClass中使用的foo函数,以使测试通过?
问题内容: 这是我的第一个前端测试经验。在这个项目中,我正在使用jest快照测试,并且组件内部出现错误。 我浏览了一些有趣的文档,发现“手动模拟”部分,但是我还不知道该如何做。 问题答案: 开玩笑的文档现在有一个“官方”解决方法: JSDOM中未实现的模拟方法
我在NestJS上用Typescript开发了一个应用程序,使用TypeORM和用Jest编写的单元测试。我有一个使用如下事务的函数: 这是NestJS文档中的一个示例。我通过,但业务逻辑不同。 问题是我想做一个单元测试来测试这个服务功能。所以我需要以某种方式模拟这两个及其。或者至少是经理。我不知道如何用笑话来表达。我无法创建没有连接的管理器。我无法在没有管理器返回的情况下创建模拟连接。 在Nes
我创建了这个类: 在服务中: 我想知道,在开玩笑的情况下,是否可以这样做:
问题内容: 我有一个依赖于导出变量的文件。此变量设置为,但是如果需要,可以将其设置为手动设置,以防止下游服务请求时出现某些行为。 我不确定如何在Jest中模拟变量,以便更改测试和条件的值。 例: 问题答案: 如果将ES6模块语法编译为ES5,则此示例将起作用,因为最后,所有模块导出都属于同一对象,可以对其进行修改。 另外,您可以切换到raw commonjs 函数,并借助以下方法做到这一点: