javascript - 如何在 Jasmine 中将参数从规范传递给记者?

标签 javascript unit-testing jasmine

我正在编写一个 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 的流程以查看哪些对象传递给每个方法,但到目前为止我还没有找到一个简单的解决方案。

如何做到这一点?

最佳答案

我找到了一个可能的解决方案 - 在 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;
   ...
}

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

关于javascript - 如何在 Jasmine 中将参数从规范传递给记者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28791797/

相关文章:

javascript - 为什么我的 jasmine 具有指定的 browserVersion 没有失败?

javascript - 为什么我的 JavaScript 不被认为是安全的?

javascript - TypeError : abc. getAttribute 不是函数

amazon-web-services - 模拟AWS Go SSM GetParameter调用

android - 如何在单元测试中初始化 ThreeTen Android backport

javascript - 有什么方法可以用 grunt-contrib-jasmine 输出 spec runner?

angular - 使用热和冷的 Jasmine 大理石的时间/框架问题

javascript - 为什么 jQuery.attr() 方法在我的 'click' 事件中不起作用?

javascript - Pusher异常 : There is missing dependant extensions - please ensure both cURL and JSON modules are installed

ios - ios应用程序 "knows"如何运行单元测试