[英]How to fail a test if no error is thrown in jest.js?
我目前正在改进我们的feathers.js/node.js
api 的分支/功能覆盖率(使用jest
进行测试)。 目前有一个服务的属性应该只接受某些值,但尚未实现。
有效值类似于:
const validValues = ["System", "Engineering", "Production"]
如果提供了其中一个值,则 api 应接受请求并返回有效响应。
如果一个值像
const invalidValue = ["Some", "Invalid", "Value"]
已提供,API 应拒绝该请求。
由于尚未实现值验证,因此想法是实现一个测试,如果 api 接受的无效值(如无效值)则失败,并确保 api 只接受有效值。
it("test service for invalid values", async () => {
const invalidValues = ["Some", "Invalid", "Value"];
invalidValues.map(async (invalidValue) => {
await expect(async () => {
await app.service("release-types").create({
someProperty: "some Value"
propertyWithValueConstraint: invalidValue,
});
}).rejects.toThrow();
});
});
问题是[].map
不会异步运行,因此不会捕获断言。 你有两个选择:
it("test service for invalid values", async () => {
const invalidValues = ["Some", "Invalid", "Value"];
await Promise.all(invalidValues.map(async (invalidValue) => {
await expect(async () => {
await app.service("release-types").create({
someProperty: "some Value"
propertyWithValueConstraint: invalidValue,
});
}).rejects.toThrow();
}));
});
it("test service for invalid values", async () => {
const invalidValues = ["Some", "Invalid", "Value"];
for (const invalidValue of invalidValues) {
await expect(async () => {
await app.service("release-types").create({
someProperty: "some Value"
propertyWithValueConstraint: invalidValue,
});
}).rejects.toThrow();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.