Reactjs 如何为Jest获取处于状态的嵌套对象的部分值
我正在为React中的类组件编写单元测试。我想测试一个大对象的各个部分,它占用了50多行代码。虽然我可以在逐行更改对象时测试整个对象,但我觉得我的测试几乎无法读取,因为我将持续发布所有50行,分别测试每个单个嵌套值 所以在没有弄清楚语法之后,我在这里和谷歌搜索了一下,我看到了很多关于如何设置嵌套对象状态的q/a,但没有看到关于如何获取的q/aReactjs 如何为Jest获取处于状态的嵌套对象的部分值,reactjs,jestjs,Reactjs,Jestjs,我正在为React中的类组件编写单元测试。我想测试一个大对象的各个部分,它占用了50多行代码。虽然我可以在逐行更改对象时测试整个对象,但我觉得我的测试几乎无法读取,因为我将持续发布所有50行,分别测试每个单个嵌套值 所以在没有弄清楚语法之后,我在这里和谷歌搜索了一下,我看到了很多关于如何设置嵌套对象状态的q/a,但没有看到关于如何获取的q/a // expect(component.state("addProjectForm['projectName']['value']&
// expect(component.state("addProjectForm['projectName']['value']")).toBe("")
// expect(component.state("addProjectForm")("projectName")("value")).toBe("")
expect(component.state("addProjectForm")).toBe({"projectName": {"value" : ""}})
这是我测试的设置。它们都失败了,最后一行确实返回了对象,尽管我知道如何传递它,但我必须再添加54行代码,然后对我需要编写的20多个单元测试中的每一个进行重复,这两个测试都是为设置编写的,然后在调用inputChangeHandler()后进行第二次,我觉得必须有更好的方法
所以。。。可以只测试对象的最后一层吗?如果可以,如何测试?说笑,toMatchObject()断言“JavaScript对象与对象属性的子集相匹配” 因此,以下内容将通过:
expect(component.state("addProjectForm")).toMatchObject({"projectName": {"value" : ""}})