|
|
|
Java Tests
|
|||
|---|---|---|---|
|
#18+
Добрый день! Не могу придумать как сделать такой тест: Есть скажем объект: MyObject у конструктора есть два параметра : myFirst, mySecond Причем в зависимости от mySecond значение myFirst может потом измениться. Ну простейшим примером может служить какой-нибудь класс, для работы с деньгами, типа если mySecond >= 100, то к myFirst должно прибавиться mySecond / 100. Как правильно написать тест, для проверки такой функциональности.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 10:33:41 |
|
||
|
Java Tests
|
|||
|---|---|---|---|
|
#18+
Значение myFirst не может поменятся. Может поменятся его состояние, если он mutable. И в чем проблема? Давайте с более реальным примером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 11:16:19 |
|
||
|
Java Tests
|
|||
|---|---|---|---|
|
#18+
Ну геттер то у вас есть? Создаете объект с двумя параметрами делаете ассертикуалс, потом с другими двумя и тд. Вообще не пойму в чем проблема ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2012, 13:19:31 |
|
||
|
Java Tests
|
|||
|---|---|---|---|
|
#18+
scymaksКак правильно написать тест, для проверки такой функциональности.? Думаю что в такой постановке - никак. Если у тебя простейший Bean с сеттерами и геттерами то ему тест не нужен. Если у тебя сложный алгоритм и ты каким-то образом получил (из других источников) его аргументы и отклик то это самое-то для модульного теста. Это очень похоже на подглядывание в конец задачника. Ты знаешь заведомо точный ответ просчитанный математиком и подсовываешь его в численный метод (или алгоритм), и утверждаешь что он совпадает в окрестности эпсилон. Это хороший научный подход. В твоей постановке сложность теста практически равна сложности самого алгоритма. Тоесть вероятность допустить ошибку при написании самого теста - 100% такая же как и в самом алгоритме. Тоесть юнит тест требует юнит теста для юнит теста и т.д. до бесконечности. Кроме того у тебя как и у многих разработчиков "замыливается" глаз и ты можешь не видеть ошибки которая на поверхности. Если же тебе (вдруг!) захочется скопи-пастить алгоритм в тест то это тоже не вариант. Это систематическая ошибка которая переползёт в сам тест. Ну как вариант я-бы попробовал два утверждения. MyObject o=new MyObject(1,2); assertEquals(o.myFirst,1); MyObject o=new MyObject(1,200); assertEquals(o.myFirst,2); (Здесь нужно еще меня проверить что я не ошибся Понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2012, 19:21:18 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=59&tid=2130544]: |
0ms |
get settings: |
13ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 316ms |
| total: | 454ms |

| 0 / 0 |
