我正在尝试使用TypeScript编写对象的架构+开玩笑的测试:
const o = { array1:[], array2: []};
其中两个数组之一是必需的。我最终看到了模式:
Yup.object({
array1: array(),
array2: array()
}).test("test", "message", value => {
if(value.array1.length === 0 && value.array2.length === 0) {
return ValidationError("message", undefined, "someErrorFieldNameForFormik");
} else {
return true;
}
}
此模式可以在formik中使用,但是很遗憾,我无法为此规则写测试。 我尝试过:
const o = { array1:[], array2: []};
await expect(MySchema.validateAt("someErrorFieldNameForFormik", o)).rejects.toThrowError(ValidationError);
但它解决了。
我的对象o
大。它有大约50个字段要填充,我想避免只为了测试这一条件而用正确的值填充整个对象。
有什么想法吗?