afadeevz / oop

Object Oriented Programming (Labs)
MIT License
0 stars 0 forks source link

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

Closed alexey-malov closed 6 years ago

alexey-malov commented 6 years ago
1>------ Build started: Project: car_test, Configuration: Debug x64 ------
1>SmartCarTests.cpp
1>c1xx : fatal error C1083: Cannot open source file: 'SmartCarTests.cpp': No such file or directory
1>main.cpp
1>CarTests.cpp
1>c:\teaching\2018\oop\fadeev\oop\lab03\1.2_car\test\cartests.cpp(163): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
1>c:\teaching\2018\oop\fadeev\oop\lab03\1.2_car\test\cartests.cpp(175): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
alexey-malov commented 6 years ago
            THEN("Gear can be changed only to neutral")
            {
                CHECK(car.SetGear(0));
                CHECK_FALSE(car.SetGear(-1));
                CHECK_FALSE(car.SetGear(1));
            }
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
alexey-malov commented 6 years ago