Closed alexey-malov closed 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());
...
}