Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing React Redux工具包';s:酶笑话';s单元测试_Unit Testing_Jestjs_Enzyme_Redux Toolkit_React Typescript - Fatal编程技术网

Unit testing React Redux工具包';s:酶笑话';s单元测试

Unit testing React Redux工具包';s:酶笑话';s单元测试,unit-testing,jestjs,enzyme,redux-toolkit,react-typescript,Unit Testing,Jestjs,Enzyme,Redux Toolkit,React Typescript,我用的是新的。新的Redux工具包比旧的Redux效率更高。我使用新的Redux工具包创建了多个简化程序和操作。我对redux工具包的设置进行了一点解构。我使用酶和笑话进行单元测试。我的redux计数器初始状态为1。从我的测试中,在it范围内,我首先获取初始状态,然后在模拟('click')增加按钮之后,我得到了我预期的结果2。当我尝试测试it范围内的reduce按钮时,它会从increase的it范围中获取结果。如果我将intialState 1放在decrease按钮的范围内,它会给出失败的

我用的是新的。新的Redux工具包比旧的Redux效率更高。我使用新的Redux工具包创建了多个简化程序和操作。我对redux工具包的设置进行了一点解构。我使用酶和笑话进行单元测试。我的redux计数器初始状态为1。从我的测试中,在
it
范围内,我首先获取初始状态,然后在模拟('click')增加按钮之后,我得到了我预期的结果2。当我尝试测试
it
范围内的reduce按钮时,它会从increase的
it
范围中获取结果。如果我将intialState 1放在decrease按钮的
范围内,它会给出失败的测试,因为它预期为2。我想我需要为这个
计数器创建mockStore.test
。由于redux工具包的语法对我来说是新的,我不知道如何在
counter.test
test套件中创建mockstore


另外,还有另一个react组件用于获取数据,即todolist。我还想做
单元测试
这些组件。如果有人帮助我测试这些组件,我将非常高兴。我是单元测试的新手我会尝试
redux mock store
如果我是你,你可以在每次测试之后(或者在每次测试之前)重置你的存储

这是官方文件中的一个示例:

// src/actions/users.test.js 
import mockAxios from "axios";
import configureMockStore from "redux-mock-store";
import thunk from "redux-thunk";
import promiseMiddleware from "redux-promise-middleware";
import { getUsers } from "./users";

const mockStore = configureMockStore([thunk, promiseMiddleware()]);

describe("User Actions", () => {
  let store;

  beforeEach(() => {
    store = mockStore({
      users: {}
    });
  });
在beforeach函数中,我们重置了存储的值,因此断言中不会出现任何意外结果

你必须将这个模拟商店传递给你的应用程序,最简单的方法是将商店
提供者
在你的应用程序中向上移动一级(到
index.js
)。然后,你会这样嘲笑它:

wrapped = mount(
    <Provider store={mockStore}>
        <Root>
            <Counter />
        </Root>
    </Provider>  
);

wrapped=mount(
);

redux模拟商店怎么样?
?我可以试试:)…@k-wasilewski没有成功。感觉很傻。我添加了一个答案来澄清。。