图片跟随测试用例:
it('valid emails checks',() => { ['abc@y.com','a@b.nz'/*,...*/].map(mail => { expect(isValid(mail)).toBe(true); }); });
我想为每封电子邮件添加自动生成的消息,例如电子邮件’f@f.com’应该是有效的,以便很容易找到失败的测试用例.
就像是:
// .map(email => expect(isValid(email),`Email ${email} should be valid`).toBe(true);
在Jest中有可能吗?
在Chai中可以使用第二个参数,例如expect(值,’自定义失败消息’).to.be …而在Jasmine中似乎完成了.because子句.但是在Jest中找不到解决方案.
解决方法
我认为不可能提供这样的信息.但是你可以定义自己的
matcher.
例如,您可以创建一个toBeValid(验证器)匹配器:
expect.extend({ toBeValid(received,validator) { if (validator(received)) { return { message: () => `Email ${received} should NOT be valid`,pass: true }; } else { return { message: () => `Email ${received} should be valid`,pass: false }; } } });
然后你像这样使用它:
expect(mail).toBeValid(isValid);
注意:toBeValid会为两种情况(成功和失败)返回一条消息,因为它允许您使用.not
.测试将失败并显示相应的消息,具体取决于您是否希望它通过验证.
expect(mail).toBeValid(isValid); // pass === true: Test passes // pass === false: Failure: Email ... should be valid expect(mail).not.toBeValid(isValid); // pass === true: Failure: Email ... should NOT be valid // pass === false: Test passes
原文地址:https://www.jb51.cc/js/157648.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。