Я могу сделать JUnit более подробным?

Обычно вы создаете объект значения для идентификатора совокупного корня. Это одна возможность полагаться на идентификатор, сгенерированный базой данных. Если вы решите позволить Db генерировать Id, вам нужно будет поработать с этим. Но зачем вам в любом случае передавать ссылку или идентификатор хранилища? Похоже, что Предмет - это Сущность, а Склад - Совокупный Корень, который должен содержать эту Сущность. В общем, вы не должны создавать сущность вне совокупного корня.

Редактировать: Существует несколько стратегий создания идентичности , как описывает Вон Вернон в Красной книге. Одним из них является то, что механизм персистентности, такой как SQL Db, генерирует уникальный идентификатор объекта или агрегата.

21
задан Allain Lalonde 7 October 2008 в 21:02
поделиться

8 ответов

Если Вы хотите видеть некоторый вывод для каждого успешного утверждения, другой простой подход, который не требует никаких внешних зависимостей или исходного кода, должен был бы определить Ваше собственное, Утверждают класс, который делегирует все методы к стандартному JUnit, Утверждают класс, а также вход успешных утверждений (об отказавших утверждениях сообщит, как обычно, класс JUnit).

Вы тогда выполняете расширенный поиск и замену на своих тестовых классах от "org.junit. Утверждайте" => "com.myco.test. Утверждайте", который должен фиксация все обычные и статические операторы импорта.

Вы могли также тогда легко переместить свой подход к quieter-is-better-camp и изменить класс обертки, чтобы просто сообщить об общем количестве # переданных утверждений на тест или в классе, и т.д.

13
ответ дан 29 November 2019 в 21:28
поделиться

Трудно быть сделанным. Все утверждают, что методы являются статическими членами класса, Утверждают, который подразумевает, что RunNotifier (который считает успешные и проваленные тесты) не в пределах досягаемости.

, Если Вы не воздерживаетесь от взлома ungly: возьмите источники от JUnit, исправьте их для хранения текущего notifier в статическом поле, Утверждают при запущении тестов, таким образом, что статические методы могут сообщить успешный, утверждает к этому notifier.

2
ответ дан 29 November 2019 в 21:28
поделиться

Можно использовать AOP (с Spring, или AspectJ) определяют pointcuts на всех, утверждают методы в junit.framework. Утверждайте класс. Используя пружину можно реализовать собственный класс как после возвращения совета ( http://static.springframework.org/spring/docs/2.5.x/reference/aop.html#aop-advice-after-returning) , который только назовут, если утверждать метод передал (иначе, это выдает исключение: junit.framework. AssertionFailedError). В Вас владеют классом, можно реализовать простой счетчик и распечатать его в конце.

4
ответ дан 29 November 2019 в 21:28
поделиться

Вы действительно интересуются утверждением, которое успешно выполняется? Обычно, единственные интересные утверждения являются тот сбой.

Являющийся пылким приверженцем JUnit самостоятельно, я пытаюсь сделать вывод тестов максимально тихим, потому что он улучшает отношение сигнал-шум, когда что-то не передает. Лучший тестовый прогон является тем, куда все передает и от stdout нет взгляда.

Вы могли всегда работать над своим модульным тестом, пока он не успешно выполняется, и выполненный "grep Утверждают test.java | туалет-l".:-)

3
ответ дан 29 November 2019 в 21:28
поделиться

javadoc junit, к сожалению, говорит, что только неудавшиеся утверждения зарегистрированы ( http://junit.sourceforge.net/javadoc_40/index.html )

, таким образом, кажется, что это не было бы возможно

-1
ответ дан 29 November 2019 в 21:28
поделиться

Я не думаю, это - цель JUnit считать подобранные утверждения или распечатать больше подробной информации. Если тесты будут атомарными, то Вы получите большую часть информации там. Таким образом, я рассмотрел бы свои тесты.

Вы также в состоянии создать LogFile в JUnit. Это возможно, но это уменьшит выполнение выполнения теста...

0
ответ дан 29 November 2019 в 21:28
поделиться

Я вполне уверен, можно создать пользовательский TestRunner, который делает это. Мы закончили с чем-то подобным в нашей самодельной платформе Поблочного тестирования (клон NUnit).

, О, ожидайте - теперь, когда я читаю Ваш вопрос снова, если Вы действительно хотите вывод для каждого успешного утверждения, необходимо будет вырыть в инфраструктуру больше. TestRunner только называют, как только для каждого тестового сценария запускают/заканчивают, таким образом, он рассчитает, передал и перестал работать тесты , не утверждения.

Это не большая часть проблемы для меня, так как я склоняюсь к одному утверждению на тест, обычно.

0
ответ дан 29 November 2019 в 21:28
поделиться

Можно ли рассмотреть?

1) загрузка junit источник
2) для изменения класса org.junit. Утверждайте, чтобы сделать безотносительно модификаций, которые Вы ищете

-1
ответ дан 29 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: