Как добавить нестандартные совпадения в жасмин глобально - PullRequest
0 голосов
/ 03 июня 2018

Мне нужна замена для функции jasmine.addMatchers, отсутствующей в версии 1.3.Текущий API позволяет добавлять сопоставления в блок describe, но я бы предпочел иметь возможность использовать свои сопоставители везде, не добавляя их снова и снова.

Существует ли global способ добавить собственные совпадения в Жасмин 3.1.0?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

https://github.com/JamieMason/add-matchers можно использовать для написания соответствий, которые работают во всех версиях Jasmine, а также Jest.

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
    );
  }
});
0 голосов
/ 06 июня 2018

Обратите внимание, что я не пробовал это в jasmine 3.1, но я делаю то же самое в jasmine 2.8:

Поместите это в любой блок кода, который запускается перед вашими тестами:

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