orleanz: (main)
orleanz ([personal profile] orleanz) wrote2016-05-19 12:18 pm

Еще про юнит-тестирование прайвет методов

Во, нашел совет на СО

The best way to test a private method is via another public method.
If this cannot be done, then one of the following conditions is true:

1 The private method is dead code

2 There is a design smell near the class that you are testing

3 The method that you are trying to test should not be private

http://stackoverflow.com/questions/34571/how-to-test-a-class-that-has-private-methods-fields-or-inner-classes

[identity profile] juan-gandhi.livejournal.com 2016-05-19 02:53 pm (UTC)(link)
О, точно, я просто рисовал метод с навзанием ..._for_testing

[identity profile] sab123.livejournal.com 2016-05-19 04:44 pm (UTC)(link)
Типовой подход - никогда не использовать слово private. Использовать только protected. После чего делается подкласс, которые вызывает защищенные методы.

[identity profile] trailmax.livejournal.com 2016-05-20 09:10 am (UTC)(link)
А полгода спустя когда захочется сделать рефакторинг, огрести ведро упавших тестов, хотя корректность выполняемых действий не изменилась.

[identity profile] sab123.livejournal.com 2016-05-20 05:48 pm (UTC)(link)
Ась? Когда будет рефакторинг кода, тогда и рефакторинг внутренних тестов. Просто надо различать слои тестов. Самыми главными, конечно, являются тесты end-to-end, продукта целиком, но их же и тяжелее всего сделать подробными. А более низкоуровневые тесты пишутся только если снаружи протестировать фичу невозможно или очень медленно.