Reactjs 强制安装()以验证PropType

Reactjs 强制安装()以验证PropType,reactjs,validation,jestjs,enzyme,react-proptypes,Reactjs,Validation,Jestjs,Enzyme,React Proptypes,我试图使用Ezyme的mount()函数编写Jest测试,该函数确保在将错误数据提供给React组件时抛出错误,但mount()仅在第一次调用mount()时执行PropTypes验证。使用格式不正确的道具使用以下测试套件: it('should throw a "Failed prop type" Error', () => { expect(globalNavigation).toThrow("Failed prop type"); }); it('should

我试图使用Ezyme的
mount()
函数编写Jest测试,该函数确保在将错误数据提供给React组件时抛出错误,但
mount()
仅在第一次调用
mount()
时执行PropTypes验证。使用格式不正确的道具使用以下测试套件:

it('should throw a "Failed prop type" Error', () => {
        expect(globalNavigation).toThrow("Failed prop type");
    });
it('should throw a "Failed prop type" Error', () => {
        expect(globalNavigation).toThrow("Failed prop type");
    });

第一个测试通过,但第二个测试失败,因为React没有验证道具。如何强制执行
mount()
函数来验证道具类型?

您的组件从父组件接收道具。因此,您应该测试父组件,以确保它将正确的道具传递给其子组件。您不应该测试该子组件以查看它是否确实获得了正确的道具——您要为伪造这些道具负责。因此,我强烈建议您使用浅层而不是坐骑

定义PropType检查是一种在开发过程中警告开发人员他们可能忘记将某些Prop传递给组件的方法。我不认为你应该测试。。。这本身就是一个考验。道具检查不应该出现在生产中