Форумы портала PHP.SU » Разное » Тестирование » тестирование композитных объектов

Страниц (1): [1]
 

1. Bio man - 01 Апреля, 2016 - 21:16:49 - перейти к сообщению
Нужно ли тестировать объекты используемые в качестве составляющих другого объекта (композиция)?

Классический пример с классом Car:
нужно ли тестировать класс Engine, или достаточно тестов только для Car?
2. maggie - 09 Июля, 2020 - 11:14:00 - перейти к сообщению
Нужно все тестировать.
3. imbecile - 12 Июля, 2020 - 13:05:35 - перейти к сообщению
есть полезная метрика "покрытие кода тестами", если не протестируете Engine, 100% никогде не достигнете )
4. LIME - 15 Июля, 2020 - 10:07:38 - перейти к сообщению
imbecile пишет:
100% никогде не достигнете )
и не надо этого хотеть
Bio man Смотря что за тесты. Функциональные и приемочные тестируют все внутренности, но нет гарантии что покрыл все кейсы для всех модулей(классов) и они медленные(для больших проектов важно), и для них придется подделывать инфраструктуру(всякие хранилища, очереди итд), а это может превратиться в больно на крупных проектах. А по модульным
Bio man пишет:
нужно ли тестировать класс Engine, или достаточно тестов только для Car?
как ни странно ответом будет: тебе решать)
Если там сложная логика, ответственное место, был уже баг - лучше покрыть. А еще лучше писать сначала тест и его использовать при написании модуля. Кстати баги имеют свойство кучковаться вокруг плохо написанных/сложных модулей.
По канону для модульного теста агрегируемый объект надо мокать. Все что смотрит наружу или приходит извне мокают на разные кейсы. Типа а вот если он так ответит, а вот если так, а вот теперь он бросил такое исключение. И все это подделывается моком. Весь внешний мир это моки)

 

Powered by ExBB FM 1.0 RC1