|
|
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Есть такой класс: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ничего криминального в вызове m2 внутри m1 нет насколько я понимаю. у меня есть отдельный тест на m2 - который говорит, что m2 - работает правильно. я иногда чувствую потребность не тестить вызов метода m2 внутри m1 ибо он и так протестен. Ну и иногда просто лень разбираться, что там делается - мне сказала, что m2 делает то-то то-то, используя это напиши m1. Условно говоря - может m1 в базу лезет.... Но чтобы так сделать, надо юзать довольно изощрённые штуки современных mock фрэймворков. А считается, что если код не говнокод, то тесты пищутся легко. Ну то есть надо мокнуть класс A, мокнуть метод m2 а для m1 сказать - call real method. mockA.m1(); А потом тестить результат вызова мока. Вот и возникает вопрос что делать и как быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 16:10 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
redwhite90ничего криминального в вызове m2 внутри m1 нет насколько я понимаю. Спорный вопрос. Возможно метод должен был быть приватным. На пальцах сложно сказать. redwhite90я иногда чувствую потребность не тестить вызов метода m2 внутри m1 ибо он и так протестен. Нужно покрыть все маршруты m1. Повторять тесты для m2, конечно же не нужно. redwhite90А считается, что если код не говнокод, то тесты пищутся легко. Вот видишь. Есть конретные примеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 18:54 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, BlazkowiczЕсть конретные примеры? Есть, но там слишком много захламляющей логики, которую я не могу выкинуть. Но смысл в том, что оба метода торчат наружу(public). И один использует другой. авторавторничего криминального в вызове m2 внутри m1 нет насколько я понимаю. Спорный вопрос ок. надо почитать об этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 19:45 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2014, 22:15 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Atum1, что-то Вы путанно объясняете. что тестится - непонятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 00:42 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
redwhite90что тестится - непонятно Что непонятного у человека горе, он вляпался в test driven programing, без подготовки. И теперь не поймет, если он что-то протестировал в общем случае, надо ли тестировать в частном. P.S. Да надо проверить что метод m1 адекватно реагирует на все возможные результаты работы (включая exceptions всякие) метода m2, и что m2 все еще соответствует той спецификации, по которой его вызывыает m1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 08:59 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
можно передавать в m1 - m2 как параметр (как функцию ) как это делается в IoC и для тестов - передавать туда null / mock Код: java 1. 2. 3. 4. 5. 6. m1(m2); // вызов m1 с m2 m1(null) // вызов m1 без m2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 10:27 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев Что непонятного у человека горе, он вляпался в test driven programing, без подготовки. Нет. Это не TDD. Код уже написан. Автор хочет покрыть. В TDD тест рождает код и вопросов не возникает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 10:32 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, IMHO у него вместо кода // some code Самое что ни на есть начало... Если же он писатель тестов, к существующему коду, то вопросов тоже возникать не должно, ибо: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 11:44 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Blazkowicz прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 11:46 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
redwhite90, решение то, я уже предложил. Хотел бы чтоб вы его оценили. redwhite90надо мокнуть класс A, мокнуть метод m2 а для m1 сказать - call real method. mockA.m1(); А потом тестить результат вызова мока. Для меня выглядит слегка диким тестить мок объект. У меня как-то до этого вседа получалось инъектить моки как поля в тестируемые РЕАЛЬНЫЕ объекты. Что думаете об этом ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 13:02 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
redwhite90Для меня выглядит слегка диким тестить мок объект. У меня как-то до этого вседа получалось инъектить моки как поля в тестируемые РЕАЛЬНЫЕ объекты. Что думаете об этом ? Да, мокать самого себя- это за гранью. Вообще, мне видится, тот объект слишком большой. Возможно нарушен принцип одной ответственности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 13:58 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, прямой связи между single responsibility и тем, что нельзя вызывать public method в другом public методе я не усматриваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 14:49 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
redwhite90прямой связи между single responsibility и тем, что нельзя вызывать public method в другом public методе я не усматриваю. Он может быть косвеной. :) Я же уже писал выше, что надо смотреть конкретные кейсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 14:53 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЯ же уже писал выше, что надо смотреть конкретные кейсы. Собственно да- выучить правила unit-test'ирования это одно, а проблема-то в конкретных ситуациях. Общих решений нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 15:28 |
|
||
|
Как правильно написать тесты когда один метод класса вызывает другой метод класса внутри?
|
|||
|---|---|---|---|
|
#18+
redwhite90, попробуйте тестировать не методы, а класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2014, 15:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38641995&tid=2127178]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
298ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 618ms |

| 0 / 0 |
