unit-testing - 测试 Redux 箭头函数 Action Creators
问题描述
我的 React-Redux 应用程序中有一个箭头函数,它只调度一个没有有效负载的动作,它将擦除(重置)我的 Redux 存储的一部分。不涉及HTTP(或 Promises )。
export const resetSearch = () => dispatch => {
dispatch({
type: RESET_SEARCH
});
};
我想测试它是否返回正确的动作类型:
import * as actions from '../actions/actionCreators';
import * as types from '../actions/actionTypes';
describe('actions', () => {
it('should create an action to reset part of the store', () => {
const expectedAction = {
type: types.RESET_SEARCH
};
expect(actions.resetSearch()).toEqual(expectedAction);
});
});
测试没有通过,因为我需要返回一个 Object,但是,我发送了这个匿名箭头函数。这是开玩笑的输出
预期值等于:{“type”:“RESET_SEARCH”}
收到:[功能匿名]
考试应该怎么做?所有的帮助都会得到帮助!
谢谢
解决方案
你可以试试下面的代码片段吗,它应该这样做:
const expectedAction = {
type: types.RESET_SEARCH
};
let retnFunc = actions.resetSearch();
retnFunc((receivedAction)=>{
expect(receivedAction).toEqual(expectedAction);
});
这里resetSearch返回一个函数,该函数被操作对象调用,所以只是模仿了相同的。
如果您需要更多帮助,请告诉我!
推荐阅读
- vue.js - Vuetify v-flex offset-*(1-12) 无法正常工作
- haskell - 如何遍历树结构并更改其数据类型
- javascript - ReactJS - net::ERR_FILE_NOT_FOUND
- spring - 在spring Data中使用继承时如何检索对象
- google-cloud-platform - 我应该使用什么服务来处理 Cloud Storage 存储分区中的文件并上传结果?
- java - PostConstruct 不再可用
- c# - 在 C# 中合并两个 .CS 文件以生成新类
- sql-server - ssis 包没有在代理上安排作业执行
- javascript - js获取字母表中的字母个数
- spring - 是否可以从多个微服务(Spring Boot)生成一个war文件?