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 только для префикса, а затем жестко закодировать номера карт для каждой длины, но это определенно не оптимально и не практично делать вне этого назначения