Задание - модульное тестирование класса C ++ - PullRequest
0 голосов
/ 23 января 2020

Напишите модульный тест для addInventory (), в котором есть ошибка. Вызовите redSweater.addInventory () с параметром sweaterShipment. Распечатайте показанную ошибку, если последующее количество неверно. Пример вывода для не пройденного модульного теста с заданным начальным количеством 10 и sweaterShipment 50:

Beginning tests.
   UNIT TEST FAILED: addInventory()
Tests complete.

Примечание. UNIT TEST FAILED предшествует 3 пробела.

Да, это назначение для класса программирования C ++. Я пытался добавить различные объекты-члены из приведенного ниже класса безрезультатно, к сожалению, я застрял и хотел бы получить некоторые подсказки, а не ответы о том, как учиться и продолжать. Вот код, который у меня есть:

#include <iostream>
using namespace std;

class InventoryTag {
public:
   InventoryTag();
   int getQuantityRemaining() const;
   void addInventory(int numItems);

private:
   int quantityRemaining;
};

InventoryTag::InventoryTag() {
   quantityRemaining = 0;
}

int InventoryTag::getQuantityRemaining() const {
   return quantityRemaining;
}

void InventoryTag::addInventory(int numItems) {
   if (numItems > 10) {
      quantityRemaining = quantityRemaining + numItems;
   }
}

int main() {
   InventoryTag redSweater;
   int sweaterShipment;
   int sweaterInventoryBefore;

   sweaterInventoryBefore = redSweater.getQuantityRemaining();
   cin >> sweaterShipment;

   cout << "Beginning tests." << endl;

   // FIXME add unit test for addInventory

   /* Your solution goes here  */
      redSweater.addInventory(sweaterShipment);
   if (redSweater.addInventory(sweaterShipment) != 50){
      cout << "   UNIT TEST FAILED: addInventory()\n";
   }

   cout << "Tests complete." << endl;

   return 0;
}

РЕДАКТИРОВАТЬ: РЕШЕНО, решение ниже

   // FIXME add unit test for addInventory

   /* Your solution goes here  */
   redSweater.addInventory(sweaterShipment);
   if (redSweater.getQuantityRemaining() != sweaterShipment){
      cout << "   UNIT TEST FAILED: addInventory()\n";
   }

1 Ответ

0 голосов
/ 23 января 2020

Простейшие из модульных тестов:

InventoryTag tag;
bool success = true;
TEST(tag.getQuantityRemaining() == 0, "initial quantity is zero");
tag.addInventory(1);
TEST(tag.getQuantityRemaining() == 1, "expected inventory is now 1");

Где TEST - это некоторый макрос, определяемый следующим образом:

#define TEST(expression, msg) {if (!(expression)) {success = false; cout << "TEST_FAILED: " << msg << endl;}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...