Оптимизация теста Чая - PullRequest
0 голосов
/ 08 апреля 2020
describe('Maestro', function() {
  // Write full test coverage for the Maestro card
  var should = chai.should();

  //Maestro always has a prefix of 5018, 5020, 5038, or 6304, and a length of 12-19.
  var prefix = ['5018', '5020', '5038', '6304'];
  var allLengths = [12, 13, 14, 15, 16, 17, 18, 19];

  for (var i = 0; i < prefix.length; i++) {
    for (var j = 0; j < allLengths; j++) {
      it('has a prefix of ' + prefix[i] + ' and a length of ' + (allLengths[j]).toString(), function () {
        detectNetwork('5018XXXXXXXX'.should.equal('Maestro'));
      });
    }
  }

Я пишу тест Чая, чтобы проверить ввод числа карт фиксированной длины 12-19 и каждого префикса. Я пытаюсь оптимизировать этот тест, чтобы после того, как требование префикса было выполнено, оставшиеся числа не имели значения, пока выполняется длина карты. detectNetwork - это функция, которая запускает номер моей карты и сопоставляет его с определенной картой. Я не уверен, возможно ли здесь написать код, в котором detectNetwork('5018XXXXXXXX'.should.equal('Maestro')); все значения X здесь могут быть любым числом, и в идеале я хотел бы, чтобы это изменилось в зависимости от текущего значения длины, на котором оно основано в l oop. Я знаю, что могу написать здесь каждый сценарий вручную, выполнив a для l oop только для префикса, а затем жестко закодировать номера карт для каждой длины, но это определенно не оптимально и не практично делать вне этого назначения

...