如何在Jest测试中检查两个数组之一是否必需

时间:2019-07-17 08:29:14

标签: jestjs formik yup

我正在尝试使用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个字段要填充,我想避免只为了测试这一条件而用正确的值填充整个对象。

有什么想法吗?

0 个答案:

没有答案