首页 > 解决方案 > 优化柴测试

问题描述

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'));
      });
    }
  }

我正在编写一个 Chai 测试来检查固定长度为 12-19 的卡号和每个前缀的输入。我正在尝试优化此测试,以便在满足前缀要求后,只要满足卡长度,其余数字就无关紧要了。detectNetwork是运行我的卡号并将其与某张卡匹配的功能。我不确定是否可以在这里编写代码,其中detectNetwork('5018XXXXXXXX'.should.equal('Maestro'));所有 X 值都可以是任何数字,理想情况下,我希望它根据循环中基于的当前长度值进行更改。我知道我可以在这里手动写出每个场景,方法是只为前缀做一个 for 循环,然后为每个长度硬编码卡号,但这绝对不是最佳的,也不实用在这个分配之外做

标签: javascriptchai

解决方案


推荐阅读