Reactjs 如何为Jest获取处于状态的嵌套对象的部分值

Reactjs 如何为Jest获取处于状态的嵌套对象的部分值,reactjs,jestjs,Reactjs,Jestjs,我正在为React中的类组件编写单元测试。我想测试一个大对象的各个部分,它占用了50多行代码。虽然我可以在逐行更改对象时测试整个对象,但我觉得我的测试几乎无法读取,因为我将持续发布所有50行,分别测试每个单个嵌套值 所以在没有弄清楚语法之后,我在这里和谷歌搜索了一下,我看到了很多关于如何设置嵌套对象状态的q/a,但没有看到关于如何获取的q/a // expect(component.state("addProjectForm['projectName']['value']&

我正在为React中的类组件编写单元测试。我想测试一个大对象的各个部分,它占用了50多行代码。虽然我可以在逐行更改对象时测试整个对象,但我觉得我的测试几乎无法读取,因为我将持续发布所有50行,分别测试每个单个嵌套值

所以在没有弄清楚语法之后,我在这里和谷歌搜索了一下,我看到了很多关于如何设置嵌套对象状态的q/a,但没有看到关于如何获取的q/a

      // 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" : ""}})