Модульное тестирование должно быть «пройдено»? Почему это терпит неудачу? - PullRequest
0 голосов
/ 09 апреля 2020
  function renderInventory(inventory) {
  //create a flat list
  var flatList = '';
  //iterate over the inventory
  for (var i = 0; i < inventory.length; i++) {
    var designerObject = inventory[i];
    var shoes = designerObject.shoes;
    //iterate over the each shoe in the array
    for (var j = 0; j < shoes.length; j++) {
      var currentShoe = shoes[j];
      //add the designer name, the shoe name, and the shoe price and the new line
      flatList = designerObject.name +", " + currentShoe.name +", " + currentShoe.price + '\n';
    } 
  }
  //return the flat list
  return flatList;
}
//assertion Function
function assertEqual(actual, expected, testName) {
  if (actual === expected) {
  console.log('passed');
  } else {
  console.log('FAILED [' + testName + '] Expected "' + expected + '", but got "' + actual + "'");
  }
}

//test cases

var currentInventory = [{
    name: 'Brunello Cucinelli',
    shoes: [
      {name: 'tasselled black low-top lace-up', price: 1000},
      {name: 'tasselled green low-top lace-up', price: 1100},
      {name: 'plain beige suede moccasin', price: 950},
      {name: 'plain olive suede moccasin', price: 1050}
    ]
  },
  {
    name: 'Gucci',
    shoes: [
      {name: 'red leather laced sneakers', price: 800},
      {name: 'black leather laced sneakers', price: 900}
    ]
  }
];

var actualFlatList = renderInventory(currentInventory);

var expectedFlatList = 'Brunello Cucinelli, tasselled black low-top lace-up, 1000\nBrunello Cucinelli, tasselled green low-top lace-up, 1100\nBrunello Cucinelli, plain beige suede moccasin, 950\nBrunello Cucinelli, plain olive suede moccasin, 1050\nGucci, red leather laced sneakers, 800\nGucci, black leather laced sneakers, 900\n';

assertEqual(actualFlatList, expectedFlatList, "should render flat list of inventory items");

Результат: НЕУДАЧИЛ [должен предоставить плоский список предметов инвентаря] Ожидаемый "Brunello Cucinelli, кисточка с низким верхом на шнуровке, 1000 Brunello Cucinelli, кисточка с низким верхом на шнуровке , 1100 Brunello Cucinelli, однотонные бежевые мокасины, 950 Brunello Cucinelli, однотонные замшевые мокасины, 1050 Gucci, красные кожаные кроссовки со шнуровкой, 800 Gucci, черные кожаные кроссовки со шнуровкой, 900 ", но получил" Gucci, черные кожаные кроссовки со шнуровкой, 900 '

Я попытался правильно добавить свой код. Надеюсь, я все сделал правильно. Я новичок в кодировании. Мой вопрос, этот блок кода модульного тестирования должен дать 'пройдено' . Где я сделал не так? Может кто-нибудь уточнить, пожалуйста.

1 Ответ

0 голосов
/ 09 апреля 2020

Я только что нашел проблему. flatList **+=** designerObject.name + ", " + currentShoe.name + ", " + currentShoe.price + '\n'; Отсутствует дополнение в функции renderInventory (инвентарь). Спасибо!

...