AlexDorohoff / OOP

Лабораторные работы по ООП
0 stars 0 forks source link

Замечания по программе Car #8

Open alexey-malov opened 6 years ago

alexey-malov commented 6 years ago
TEST_CASE("Set gear on onEngine")
{
    Car car;
    car.TurnOnEngine();
    car.SetGear(1);
    REQUIRE(car.TurnOffEngine());
}
void ExpectOperationSuccess(SomeObj & obj, const function<bool(SomeObj & obj)> & op, int expectedProperty1, const string & expectedProperty2, ...)
{
    BOOST_REQUIRE(op(obj)); // ожидаем, что операция вернет true (успех)
    // Сравниваем состояние свойства объект с ожидаемым
    BOOST_CHECK_EQUAL(obj.GetProperty1(), expectedProperty1);
    BOOST_CHECK_EQUAL(obj.GetProperty2(), expectedProperty2);
    ...
}

void ExpectOperationFailure(const SomeObj & obj, const function<bool(SomeObj & obj)> & op);
{
    auto clone(obj); // сделали клон объекта
    BOOST_REQUIRE(!op(clone)); // ожидаем, что операция завершится неуспешно (передаем клон)
    // проверяем, что после выполнения операции состояние клона не отличается от оригинала 
    // (операция в случае неудачи оставляет объект в состоянии, в котором он пребывал до операции)
    BOOST_CHECK_EQUAL(clone.GetProperty1(), obj.GetProperty1());
    BOOST_CHECK_EQUAL(clone.GetProperty2(), obj.GetProperty2());
    ...
}
alexey-malov commented 6 years ago
class Car
{
public:
    bool IsEngineOn();
    bool TurnOnEngine();
    bool TurnOffEngine();
    bool SetGear(int gear);
    std::string GetEror();
    bool IsACorrectGear();

private:
    bool isEngineTurnOn = false;
    std::string error;
    int m_speed = 0;
    int m_gear = 0;
};
alexey-malov commented 6 years ago
alexey-malov commented 6 years ago
private:
    bool isEngineTurnOn = false;
    std::string error;
    int m_speed = 0;
    int m_gear = 0;
};
alexey-malov commented 6 years ago

Ознакомьте со средствами для написания тестов в bdd-стиле в Catch2: https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md#bdd-style

alexey-malov commented 6 years ago
Enter command:
> EngineOff
Engine is turned of
engine allready stoped
> EngineOff
Engine is turned of
engine allready stoped
> EngineOn
Engine is turned on
engine allready stoped
> Info
Engine is On
Gear : 0
Speed : 0
>
alexey-malov commented 6 years ago
> Info
Engine is On
Gear : 0
Speed : -20
Direction : backward
> SetSpeed 10
Not a correct gear
Speed not change
>
alexey-malov commented 6 years ago
alexey-malov commented 6 years ago
alexey-malov commented 6 years ago
alexey-malov commented 6 years ago
alexey-malov commented 6 years ago
1>c:\teaching\ips\2018\oop\dorohov\oop\lab3\car\remotecontrol.cpp(105): error C3861: 'is_numeric': identifier not found