Open alexey-malov opened 9 years ago
enum direction
{
BACK,
STAND,
STRAIGHT
};
имена enum-ов по соглашению должны использовать UpperCamelCase
struct range
{
int min;
int max;
};
Имена структур по соглашению должны использовать UpperCamelCase
Тесты проверяют лишь малую часть требований, описанных в спецификации.
А те, что есть, просто проверяют коды возврата (true/false), не проверяя фактическое состояние объекта после вызова метода, изменяющего состояние объекта
В коде класса CCar постарайтесь избавиться от магических констант -1 и 5, 150 и т.п. используя именованные константы для хранения минимальной и максимальной передачи, максимальной скорости и т.п.
за исполнение: 0,7 за срок: 0,6 (судя по истории коммитов, основная часть работ была сделана после 22 апреля).
BOOST_AUTO_TEST_CASE(CanChangingGearAndSpeed)
{
BOOST_CHECK(car.SetGear(-1));
BOOST_CHECK_EQUAL(car.GetGear(), -1);
BOOST_CHECK(car.SetSpeed(10));
BOOST_CHECK_EQUAL(car.GetSpeed(), 10);
BOOST_CHECK(car.SetSpeed(21));
BOOST_CHECK_EQUAL(car.GetSpeed(), 0);
В спецификации ничего не сказано о том, что автомобиль должен остановиться, если скорость движения выходит за пределы допустимой. В данном случае автомобиль должен продолжать двигаться в обратном направлении с последней валидной скоростью (10 км/ч)
BOOST_CHECK_EQUAL(car.GetSpeed(), 0); //!!!
BOOST_CHECK(car.SetGear(0));
BOOST_CHECK_EQUAL(car.GetGear(), 0);
BOOST_CHECK(car.SetSpeed(10)); // !!!
BOOST_CHECK_EQUAL(car.GetSpeed(), 10); // Тут скорость должна остаться прежней
Это поведение по меньшей мере странно, т.к. на нейтрали нельзя увеличить с 0 до 10
Выяснилось, что тесты не запускались в процессе разработки, поэтому ошибки могут быть как в них, так и в коде. Доработать код класса и тесты, чтобы тесты проходили успешно
Класс следует назвать CCar, а не CCarSet. Не путать с телевизором: