Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

unit tests

1806  1 2 3 4 все
dymanoid знакомое лицо06.12.18 23:12
dymanoid
NEW 06.12.18 23:12 
в ответ moose 06.12.18 21:03

Такие вещи не тестятся юнит-тестами. Это задача интеграционных тестов.

#61 
MrSanders старожил07.12.18 09:36
NEW 07.12.18 09:36 
в ответ dymanoid 06.12.18 23:12

Почему? Я вполне могу один и тот же метод в 10 потоках прогнать, чтобы попытаться ошибки синхронизации найти. Для этого мне ничего "снаружи" тестируемого класса не надо. Чем не юнит-тест?

Просто прохождение теста не гарантирует что код действительно thread-safe.

#62 
Simple Nothing is f*cked07.12.18 15:32
Simple
NEW 07.12.18 15:32 
в ответ MrSanders 07.12.18 09:36

нп

В насквозь-легаси пхп-проекте начал писать юнит тесты!

#63 
dymanoid знакомое лицо07.12.18 19:14
dymanoid
NEW 07.12.18 19:14 
в ответ MrSanders 07.12.18 09:36, Последний раз изменено 07.12.18 19:15 (dymanoid)

Потому что это будет тест ради клизмы, а не ради теста. В реальной среде всё будет по-другому - здрасьте, рейскондишн. И на кой писать такой юнит-тест тогда?

Юнит-тесты пишут, не для того чтобы ошибки искать, кстати.

#64 
  moose старожил07.12.18 20:23
NEW 07.12.18 20:23 
в ответ dymanoid 07.12.18 19:14
Юнит-тесты пишут, не для того чтобы ошибки искать, кстати.

у меня тоже такое мнение сложилось (не берем во вниманиее ТДД). просто наличие юниттестов и возможности их автопрогона позволяет убедиться (грубо), что, наваяв что-то в одном месте, мы не нарушили ничего в другом через какой-нибудь побочный эффект. хотя почему для "ошибки искать" юниттэсты не годятся? ведь мы все равно так или иначе наш код тестируем. если выработана привычка делать это юниттэстами, то неплохо, наверное.

я против юниттэстов ради юниттэстов, или когда ресурсы на их создание превосходит затраты на основной код. ну и не на каждый пук следует писать юниттэст. бывает "очевидный код". хотя ошибки в таком обходятся как правило дороже всего : )

#65 
MrSanders старожил07.12.18 23:40
NEW 07.12.18 23:40 
в ответ dymanoid 07.12.18 19:14
Потому что это будет тест ради клизмы, а не ради теста. В реальной среде всё будет по-другому - здрасьте, рейскондишн. И на кой писать такой юнит-тест тогда?

Не совсем. Понятно что гарантии нет, но многие ошибки синхронизации или доступа к мониторам всё же отлавливаются. Так что лучше такой ничего не гарантирующий тест, чем никакого. Из личного: один такойтест помог сразу найти ошибку в исправленном коде - тупо не то имя монитора написано было, соответственно сразу дэдлок.

Юнит-тесты пишут, не для того чтобы ошибки искать, кстати.

И для этого тоже. Не далее как вчера. Сообщили об ошибке - "что-то annotation processor не обрабатывает класс MyPowerfullClassWithThousandMethodsAndFields, мы класс проверили, вроде всё по документации."

Юнит тестов у процессора нет. Взял документацию и четко по ней написал блэкбокс тесты. Прогнал, нашёл ошибку. Если поле было аннотировано хоть какой-то аннотацией другие проверки не делались.

Что я сделал не так, и почему я не мог написать юнит-тест чтобы искать ошибку?

#66 
  moose старожил18.12.18 12:13
NEW 18.12.18 12:13 
в ответ Simple 05.11.18 16:17, Последний раз изменено 18.12.18 12:14 (moose)

попалась в каком-то контексте книга Working effectively with legacy code, вспомнил, что здесь тоже советовали, и купил (сорок с чем-то выкинул). что могу сказать? давно не делал такой бесполезной траты денег (на книгу) и времени (на ознакомление). естественно, поначалу читал все подряд, даже трогательные рассказы о том, как мама (или папа?) в детстве купили компьютер, и как он ... в общем, как автор "рос в теме". затем, когда стало ясно, что количество слов явно превышает количество смысла, стал чинать только код до волшебного улучшалова и после, а когда скука совсем одолела, перешел сразу к стр. 323 (в книге 423), где все изложенное еще раз изложено более сжато (но все равно размазано).

еще раз повторю, напрасно потратил время/деньги. не попадитесь. не извлек из текста для себя НИЧЕГО нового (а уж полезного тем более). вот так бывает.

#67 
MolMed гость18.12.18 19:43
MolMed
NEW 18.12.18 19:43 
в ответ moose 18.12.18 12:13

Чтобы не покупать, можно, разумеется исключительно для ознакомления (!) скачать с Libgen или зеркал. Я всегда так делаю.

#68 
1 2 3 4 все