代码之家  ›  专栏  ›  技术社区  ›  maaartinus

如何在全球范围内为茉莉花添加定制火柴?

  •  3
  • maaartinus  · 技术社区  · 6 年前

    我需要一个替代品 jasmine.addMatchers 版本1.3中的函数消失了。当前的api允许向 describe 布洛克,但我更希望能够使用我的火柴到处都没有添加他们一次又一次。

    有没有 全球的 如何在Jasmine 3.1.0中添加自己的匹配器?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Jamie Mason    6 年前

    https://github.com/JamieMason/add-matchers 可以用来写火柴在所有版本的茉莉花,以及笑话。

    var addMatchers = require('add-matchers');
    
    addMatchers({
      // matcher with 0 arguments
      toBeEvenNumber: function(received) {
        // received : 4
        return received % 2 === 0;
      },
      // matcher with 1 argument
      toBeOfType: function(type, received) {
        // type     : 'Object'
        // received : {}
        return Object.prototype.toString.call(received) === '[object ' + type + ']';
      },
      // matcher with many arguments
      toContainItems: function(arg1, arg2, arg3, received) {
        // arg1     : 2
        // arg2     : 15
        // arg3     : 100
        // received : [100, 14, 15, 2]
        return (
          received.indexOf(arg1) !== -1 &&
          received.indexOf(arg2) !== -1 &&
          received.indexOf(arg3) !== -1
        );
      }
    });
    
        2
  •  2
  •   Andrew Eisenberg    6 年前

    请注意,我在《茉莉花3.1》中没有尝试过,但我在《茉莉花2.8》中也是这样做的:

    将它放在测试之前运行的任何代码块中:

    jasmine.getEnv().beforeEach(() => {
      jasmine.addMatchers({
        toBeAwesome(util, customEqualityTesters) { ... }
      })
    });