我正在尝试为我的程序编写测试用例,我听到了关于testing-library/react和 的好消息jest-junit。我使用 npm 将两个软件包安装到我的devDependencies并更改了我的测试脚本:"test": 'react-scripts test"当我运行 npm test 时,我得到错误提示
TypeError: fsevents is not a function
所以我尝试 npm i fsevents 但它没有帮助。我尝试在网上查找,但错误是 fsevents 不是构造函数或更改为纱线。
是什么导致了这个问题?我正在使用 npm v6.4.1 和 react-script v3.1.1
编辑:如果重要的话,也使用 Mac
Edi2:我再次运行测试,没有任何更改就不再出现此错误。
我正在使用Formik一种形式的图书库,其中列表中的每个项目看起来像:
author: {
name: 'string',
titles: ['string']
}
Run Code Online (Sandbox Code Playgroud)
我在尝试创建一个模式Yup来验证这些字段时遇到了麻烦。我有:
schema = Yup.object().shape({
author: Yup.object().shape({
name: Yup.string().min().max().required('...')
}),
author: Yup.array().of(
Yup.object().shape({
titles: Yup.string().min().max().required('...')
})
)
});
Run Code Online (Sandbox Code Playgroud)
初始值也是:
{
author: {name: ''},
author: [{ titles: '' }]
}
Run Code Online (Sandbox Code Playgroud)
我的验证适用于数组,但不适用于名称。我假设问题是对象中的两个元素不能具有相同的名称,但是我不知道如何在初始值和模式中组合这两个字段。我查看了 Yup API,我注意到他们有,mixed()但我不明白如何使用我需要的东西来实现。这种方式是否可行,或者是否可以对这两种方式进行验证?