den-run-ai / mipt-course

Automatically exported from code.google.com/p/mipt-course
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Упростить тестирование классов, работа которых зависит от времени (timing) #34

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Здесь "TDD наоборот", т.е. у такого класса 
почти не будет тестов, но нужно будет 
вдвойне подумать, насколько удобно будет 
им пользоваться в других тестах. Возможно, 
нужно будет написать "демо" тесты.

Ключевые слова для размышлений: mock, RIAA.

Original issue reported on code.google.com by timurrrr on 9 Dec 2011 at 7:04

GoogleCodeExporter commented 9 years ago
Этот класс имеет смысл добавлять в base/, а не 
sandbox/

Original comment by timurrrr on 9 Dec 2011 at 8:45

GoogleCodeExporter commented 9 years ago
Решение №1:
а) ScopedBulletTime  (или ScopedTimeStopper?), который 
"замораживает" текущее время.
    В деструкторе - "размораживает" время.
б) Функция ShiftTimeForward(shift), которая сдвигает 
"замороженное время" на shift мс.

Решение №2:
Только ShiftTimeForward.

Возможные проблемы:
pthread_cond_wait и подобные работают с "системным" 
временем.

Original comment by DanichBl...@gmail.com on 10 Dec 2011 at 10:58

GoogleCodeExporter commented 9 years ago
Done. Reviewed at http://codereview.appspot.com/5493048/

Original comment by DanichBl...@gmail.com on 26 Dec 2011 at 1:38

GoogleCodeExporter commented 9 years ago
Fixed in r335

Original comment by DanichBl...@gmail.com on 26 Dec 2011 at 1:47

GoogleCodeExporter commented 9 years ago
Ты ещё не предложил как работать с 
pthread_cond_timedwait и подобными функциями.
Переоткрываю, но уже с низким приоритетом.

К слову, в описании статуса Verified стоит, что 
его должен ставить тот кто файлил issue, а не 
тот кто его делал. 

Original comment by timurrrr on 26 Dec 2011 at 6:12

GoogleCodeExporter commented 9 years ago

Original comment by timurrrr on 9 Nov 2012 at 7:07

GoogleCodeExporter commented 9 years ago

Original comment by timurrrr on 28 Nov 2012 at 7:55