2015-11-17 39 views
3

我想用Jasmine框架定义我的自定义用户定义的匹配器。 我将验证两个复杂对象之间的关系。在用户定义的内部使用Jasmine预定义的匹配器

在例如:

customMatchers = { 
    toBeSiblings: function(util, customEqualityTesters) { 
    return { 
     compare: function(actual, expected) { 
     expect(actual.parent).toBeDefined() 
     expect(expected.parent).toBeDefined() 
     result = { 
      pass: util.equals(actual.parent, expected.parent, customEqualityTesters) 
     }; 
     if (!result.pass) { 
      result.message = "Expected object: " + actual + " to be sibling of: " + expected; 
     } 
     return result; 
     } 
    }; 
    } 
}; 

我想以类似的方式来测试使用现有噶匹配器比较的对象的某些前提条件如在上面的示例。

我的问题是:是否有可能提取使用匹配器匹配结果来格式化的适当消息即“预期实际到具有父”?

回答

2

我刚刚检查 - 事实证明这其实很简单。按照您的示例使用预定义的匹配器,并简单地向这些匹配器添加自定义消息。该消息不会替代默认消息,但会附加到该消息。

expect(actual.parent).toBeDefined("or more precisely, expected object " + actual + " to have a parent"); 

在失败的情况下,你得到的

预期不确定的消息来定义“或者更确切地说,预期目标无论有父”。

相关问题