gpt4 book ai didi

reactjs - 如何使用 Jest 为 Yup.isValid 函数编写测试用例?

转载 作者:行者123 更新时间:2023-12-03 13:49:36 26 4
gpt4 key购买 nike

我正在尝试添加单元测试来验证 Yup.isValid 函数,但运行后的测试用例显示错误为:Timeout - 在指定的超时内未调用异步回调 Jasmine .DEFAULT_TIMEOUT_INTERVAL 。即使我更改 Jasmine 的最小超时,也会显示相同的错误。我验证 Yup 模式的函数是:

export const validateSchema= (
validationSchema,
data
) => {
return new Promise(async (resolve, reject) => {
await validationSchema
isValid(data)
.then(isFormValid => {
//passing response to method
})
.catch(error => reject(error));
});
};

我的测试用例是:

test("validate Schema",async () => {
let catchFn = jest.fn();
let data= someSampleData;
//data is valid as per the schema
await validationSchema(
validationSchema,
data
)
.then(res => {
//My expected condition
})
.catch(catchFn);
});

上面的测试用例不会让我把我的条件放在哪里。正如我提到的,出现了同样的错误。我该如何解决这个问题?

最佳答案

对于大型模式,使用 yup 的 validateAt api 传入要验证的路径可能会更好,因此装置数据可以更加简洁。

Jest 规范可能类似于:

await expect(schema.validateAt(path, fixture)).rejects.toBeTruthy()
  it("requires person's name", async () => {
await expect(schema.validateAt('person.name', {})).rejects.toBeFalsy()
await expect(schema.validateAt('person.name', {person: {name: "something"}})).resolves.toBeTruthy()

}

单元测试是的很有趣,因为其中很多都是配置,测试库是否按照他们所说的方式工作可能是无关紧要的。但是,这似乎确实有助于测试更复杂的自定义架构验证行为。

关于reactjs - 如何使用 Jest 为 Yup.isValid 函数编写测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54181504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com