Redux单元测试的动作我得到了错误:expect(received). toequal (expected) //深度



我正在尝试运行一个单元测试Redux action.test.js使用jest和反应测试库。

/src/存储/动作/index.js

import actionTypes from '../ActionTypes';
export const setLoader = (value, errorMessage = '') => ({
type: actionTypes.SET_LOADER,
status: value,
errorMessage,
});

/src/存储/ActionsTypes.js

const actionTypes = {
SET_LOADER: 'SET_LOADER'  
};
export default actionTypes;

在测试文件中,以下是我测试的一部分:

import * as actions from '../index';
describe('ACTIONS', () => {
it('should create an actions with correct type', () => {
expect(actions.setLoader()).toEqual({ type: 'SET_LOADER' });
})
})

我得到了这个错误:expect(received).toEqual(expected)//深度相等

● ACTIONS › should create an actions with correct type
expect(received).toEqual(expected) // deep equality
- Expected  - 0
+ Received  + 2
Object {
+   "errorMessage": "",
+   "status": undefined,
"type": "SET_LOADER",
}

对代码的任何更正都将非常有帮助,谢谢!

新更新

当我像下面提到的那样设置errorMessage时:

expect(actions.setLoader()).toEqual({ type: 'SET_LOADER', errorMessage: 'message'});

我得到了一个更奇怪的错误:

- Expected  - 1
+ Received  + 2
Object {
-   "errorMessage": "message",
+   "errorMessage": "",
+   "status": undefined,
"type": "SET_LOADER",
}

您的setLoader操作将errorMessage属性设置为"",status属性设置为undefined;但是,您的断言没有考虑到这些属性。您可以将这些属性添加到toEqual中被比较的对象中,或者您可以验证type属性是否为"SET_LOADER"—这完全取决于您。

最新更新