如何在Jasmine中将参数从spec传递给记者?

时间:2015-03-01 09:04:59

标签: javascript unit-testing jasmine

我正在写一个茉莉花记者,我希望能够将各个规格的参数传递给记者。例如:

规范:

// I prefer this way
it("my spec 1", function() { ... }, { myParam: true });

// But this way would also be fine if it can work
it("my spec 2", function() {
    this.myParam = true;
    ...
});
记者:

this.specDone = function(specResult) {
   var myParam = // some way to access myParam
   ...
}

我没有找到任何类似这样的文件,也没有找到其他记者类似的例子。

我也尝试调试jasmine的流程,看看哪些对象传递给每个方法,但到目前为止,我没有找到一个简单的解决方案。

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

我找到了一个可能的解决方案 - 在boot.js

var jasmineInterface = {
    it: function(desc, func, properties) {
      var spec = env.it(desc, func);
      spec.result.myParam = (properties || {}).myParam;
      return spec;
    },
...

然后在记者中:

this.specDone = function(specResult) {
   var myParam = specResult.myParam;
   ...
}

当然,您可以(并且应该)使其更通用以适应其他情况。