覆盖匹配器的默认jasmine错误消息

时间:2013-06-03 04:52:02

标签: javascript unit-testing bdd jasmine

我想在任何匹配器失败时显示一些自定义错误消息,假设我称之为

 expect(false).toBe(true);

显然它将返回false并且错误消息将是

Expected false to be true 

但在这里我想展示我的自定义信息。假设我要显示

You are expecting a false but its true .

如何做到这一点。提前致谢 。

2 个答案:

答案 0 :(得分:2)

这不完全是你想要的,因为它不灵活,但它可以处理你的情况。

期望中有未记录的功能 - 您可以包含自定义失败消息:

expect(false).toEqual(true, 'this is my custom error message');

在你的情况下:

expect(false).toBe(true, 'You are expecting a false but its true .');

否则,创建自定义匹配器(http://jasmine.github.io/2.0/custom_matcher.html):

jasmine.addMatchers({
    customToBe: function() {
        return {
            compare: function(actual, expected) {
                var result = {};
                result.pass = actual === expected;
                if (result.pass) {
                    result.message = "You are expecting a " + expected + " and its " + actual + " .";
                } else {
                    result.message = "You are expecting a " + expected + " but its " + actual + " .";
                }
            }
        };
    }
});

答案 1 :(得分:0)

您必须为此编写自定义匹配器。因为错误消息是在茉莉花中硬编码的。