Unit testing React/Redux应用程序的单元测试
我目前正在研究基于Redux/React的应用程序的测试方法。我阅读了关于测试的redux教程,但仍然有问题:Unit testing React/Redux应用程序的单元测试,unit-testing,reactjs,tdd,redux,Unit Testing,Reactjs,Tdd,Redux,我目前正在研究基于Redux/React的应用程序的测试方法。我阅读了关于测试的redux教程,但仍然有问题: 测试纯动作创建者是否有意义,因为它只返回带有类型和有效载荷字段的对象?对我来说,它闻起来像是OO应用程序中的getter/setter测试 在测试异步操作的情况下,您是否应该检查相应的成功操作和已调度的操作?同样,在模拟HTTP请求的情况下,似乎只是测试模拟容器,而不是应用程序行为 由于减速器负责状态转换,测试是否应集中在减速器中,以确定连接部件的行为 也许不应该测试应用程序的redu
类型
和有效载荷
字段的对象?对我来说,它闻起来像是OO应用程序中的getter/setter
测试我想听听在生产中使用Redux/React并积极实践测试的人员的一些经验 我将依次回答每个问题,只是根据我的经验给出不同程度的细节 tl dr:关注特定于应用程序的行为和功能测试,让库担心redux实现细节,并在组件中使用之前测试小型reducer函数
for (var i = 0; i < actions.length; i++) {
let action = actions[i](testData);
expect(action).to.have.property('type');
expect(action).to.have.property('payload');
}
然后在单独的测试用例中测试每个减速器(reduceA
和reduceB
)的行为。您仍然希望测试返回的结果及其形状,但始终尝试在实现和测试中分解还原器dispatch
,然后测试简单组件是否调用像onClick
这样的处理程序,或者从您的存储中提取正确的状态,但这些应该只需要是简单的间谍或对道具的形状和价值的断言,不是真的与redux相关您可以尝试使用来测试动作和动作创建者。它允许编写一行可读的断言,并避免存储准备阶段。2。我认为在调度多个操作时值得测试,比如:FOO_加载、FOO_接收。检查它们是否以正确的顺序和正确的有效载荷发送。
const reducer = combineReducers({
a: reduceA,
b: reduceB
})