如何使用jasmine和量角器编写自定义消息?

时间:2016-11-04 05:33:16

标签: testing jasmine protractor

我正在寻找使用量角器和茉莉花在成功测试中添加自定义消息的方法。 有许多方法可以在失败时自定义消息,例如jasmine-custom-message节点包或简单地:

expect(column.get(0)).toEqual("7", "This is not something I've expected");

但我还没有找到一种方法来成功添加自定义消息。我正在使用protractor-jasmine2-html-reporter生成我的报告,但成功的测试只显示“通过”或“0失败”的消息,我想更明确地说明我测试的内容以及测试通过的原因

1 个答案:

答案 0 :(得分:-1)

您想为Jasmine编写自定义匹配器。您希望将它们包含在protractor.conf.js文件中,以便可以在整个项目中访问它们

https://jasmine.github.io/2.0/custom_matcher.html

以下是在出现错误时将数字与打印消息进行比较的示例。如果您运行此错误,则为Expected 7 to be 8 (Expected Error)。请注意,这是使用beforeEach将其包含在规范中。

var customMatchers = {
  toBeEqualWithMessage: function(util, customEqualityTesters) {
    return {
      compare: function(actual, expected, message) {
        var result = {};
        result.pass = util.equals(actual, expected, customEqualityTesters);
        if (!result.pass) {
          result.message = "Expected " + actual + " to be " + expected + " (" + message + ")";
        }
        return result;
      }
    };
  }
};

describe('Custom Matcher', function(){
  beforeEach(function() { jasmine.addMatchers(customMatchers);});

  it('should use a matcher', function(){
    expect(7).toBeEqualWithMessage(7,"No error because they match");
    expect(7).not.toBeEqualWithMessage(8,"No error because of the 'not'");
    expect(7).toBeEqualWithMessage(8,"Expected Error");
  });
});

仅供参考:文件有一个结果。通过案件的消息,但我不知道在哪里使用,也许是一个详细的打印。