|
|
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Всем привет, столкнулся с ситуацией когда тестировать надо приватные методы и функции классов. В TestFramework включённый в последнии версии Delphi такой возможности не нашел. Там можно только паблики тестировать. Как быть в такой ситуации? что посоветуете? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2021, 22:08 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Приватные, они на то и приватные, что к ним доступа извне нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2021, 22:34 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Оберни необходимое в тестовый дифайн с повышением области видимости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2021, 23:39 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Можно еще скопипастить интерфейс класса c новым именем, и сделать там все пабликом, не меняя порядка содержимого. А дальше unsafe приведение типов - и profit! Так не обязательно корежить основной код уродливыми дефайнами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 04:31 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Ещё можно интерфейсы использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 14:44 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Не проще ли через rtti вытащить, если уж так припёрло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 17:58 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, А через RTTI можно к привату обращатся? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 18:34 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
rgreat, По дефолту нельзя (хотя к полям можно и по дефолту), но этот вопрос решается одной директивой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 18:43 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
GunSmoker Ещё можно интерфейсы использовать. можно какой то маленький пример? Не пойму саму идею как используя интерфейс у класса (у которого изначально таковых не было) повысить видимость его методов. Думаю это интересно будет не только мне. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 21:00 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey rgreat, По дефолту нельзя (хотя к полям можно и по дефолту), но этот вопрос решается одной директивой. осмелюсь тоже попросить пример. Вопрос, на мой взгляд, злободневный и многим будет интересен. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 21:01 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
hlopotun, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2021, 22:10 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Какой смысл тестировать приватные методы, если важна корректность работы публичных? Тестируйте публичные, они же используют приватные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2021, 10:58 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
X-Cite Какой смысл тестировать приватные методы, если важна корректность работы публичных? Тестируйте публичные, они же используют приватные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2021, 11:36 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
X-Cite Какой смысл тестировать приватные методы, если важна корректность работы публичных? Тестируйте публичные, они же используют приватные... Иногда это проще. Например, если наружу торчит только "отправь запрос к серверу, пережуй его и верни результат", а внутри тонны функций. Я делаю дефайнами: {$IFDEF TEST}protected{$ELSE}strict private{$ENDIF} - это будет единственная меняющаяся строка для каждого класса, без особого уродства. Вот с внутренними типами уже сложнее. Но в целом надо стараться минимизировать тестирование кишок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2021, 16:39 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Но в целом надо стараться минимизировать тестирование кишок. Это почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2021, 17:04 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Это почему? Потому что по-хорошему что торчит наружу - то и надо тестировать, в случае изменений внутреннего устройства меньше переделывать. У меня было исключение из этого правила в утилитных функциях и классах, которые выставлять наружу не нужно, а проверять через внешний интерфейс слишком муторно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2021, 19:11 |
|
||
|
unit тестирование не public методов и функчий
|
|||
|---|---|---|---|
|
#18+
hlopotun столкнулся с ситуацией когда тестировать надо приватные методы и функции классов Если речь идёт не о глубоко системном коде, то 99% что это напрасная трата времени. hlopotun Как быть в такой ситуации? что посоветуете? Иногда, когда тестам нужен специфический доступ куда-то глубоко внутрь, я завожу метод типа __ut__dosomething, предназначенный только и именно для них. Этого хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2021, 23:14 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40040282&tid=2037660]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 458ms |

| 0 / 0 |
