【发布时间】:2018-04-17 16:02:12
【问题描述】:
我正在尝试对 redux reducer 进行单元测试。我想知道预期的回报值。
目前我期望值等于:
但我收到了:
, "isConnected": false>
我在文档中发现了两个 reducer 语法。
第一个返回一个对象:
, "isConnected": false>
第二个是数组:
[]
正确的 reducer 应该返回什么值?
我的 package.json:
{
"name": "app",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^16.3.2",
"react-dom": "^16.3.2",
"react-scripts": "1.1.4"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"devDependencies": {
"enzyme": "^3.3.0",
"enzyme-adapter-react-16": "^1.1.1",
"react-test-renderer": "^16.3.2"
}
}
我的减速机:
import * as types from '../actions/actionsTypes'
const initialState = {
isConnected : true
};
const appReducer = ( state = initialState, action) => {
switch (action.type) {
case types.OPEN_CONNECTION :
return {
...state,
isConnected : true
};
case types.CLOSE_CONNECTION :
return {
...state,
isConnected : false
};
default:
return state
}
};
export default appReducer;
我的测试:
it('appReducer Test', () => {
expect(appReducer([{isConnected : false}], {type: types.OPEN_CONNECTION})).toEqual({isConnected : true})
})
【问题讨论】:
-
a) 你用什么来测试?这种语法看起来很奇怪。 b) 减速器不遵循约定。您必须检查减速器代码以查看其返回的内容。你能把代码贴在这里吗?
-
@azium 我编辑了我的帖子。 reducer 返回的状态对象也不遵循约定?
标签: unit-testing react-redux reducers