Comments (9)
- Нет проверки, что когда мы едем задом даже на нейтральной передаче, нельзя сменить передачу без полной остановки
from oop.
> Info
Engine: on
Gear: -1
Speed: 10
Direction: backward
> SetGear 0
Gear was switched on 0
> Info
Engine: on
Gear: 0
Speed: 10
Direction: forward
- Автомобиль резко меняет направление движения, если включить нейталь на задней передаче
from oop.
- Нет тестов, проверяющих диапазоны скоростей на каждой передаче, а также допустимые для переключения передач скорости движения
from oop.
- Скорость и направление движения связаны друг с другом. Поддержка их в согласованном состоянии требует бОльших усилий
from oop.
- зачем объявлять таблицу скоростей в .h файле, если она используется исключительно внутри Car.cpp
from oop.
int GetDirection();
- методы класса не меняющие его наблюдаемое состояние, должны быть константными
from oop.
- зачем нужны публичные методы CheckGear и IsSpeedInRange
from oop.
bool m_isTurnOn = false;
- is turned on
from oop.
- Тесты должны не только проверять успешность или неудачу при выполнении модифицирующей состояние объекта операции, но еще и сравнивать состояние объекта после операции с ожидаемым. Если в разных тестах используются однотипные проверки состояния (состоящие из нескольких действий), то полезным будет выделить их в функции вида:
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());
...
}
from oop.
Related Issues (8)
- Замечания по программе Replace HOT 10
- Замечания по Лабораторной работе №1 "invert" HOT 8
- Замечания по Vector HOT 6
- Замечания по HtmlDecode HOT 10
- Замечания по генератору простых чисел HOT 4
- Замечания по HttpURL HOT 9
- Замечания по FindMaxEx HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oop.