2012-04-23 3 views
0

Я следую за это руководство http://javaeenotes.blogspot.com/2011/06/short-introduction-to-jmock.htmlЧто составляет «стандартные библиотеки jmock»?

Я получил ошибку

java.lang.SecurityException: class "org.hamcrest.TypeSafeMatcher"'s signer information does not match signer information of other classes in the same package. 

В руководстве автор говорит:

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

Что составляет «стандартные библиотеки jmock» и «библиотеки юнитов»? Junit имеет только одну банку, так что это легко, но jmock поставляется с более чем 10 различными банками.

Я использую: J-unit4.10, JMock-2,5, hamrest-ядро и Hamcrest библиотека

Каковы Hamcrest ядро ​​и библиотеки классов для?

ответ

0

JUnit используется для проведения модульного тестирования, чтобы проверить ваши методы. JMock используется для проверки вашей программы внутри контекста, вам нужно будет знать, что вы ожидаете отправить в контекст (ENV), и что ответит на контекст.

JMock использует JUnit, поэтому во избежание конфликтов зависимостей вам необходимо включить его перед JUnit.

10 библиотек JMock являются дополнительными дополнениями, если вам нужно использовать скрипт JMock или любую другую функциональную возможность, недоступную в ядре JMock.

Вам не нужно знать о библиотеке Hamcrest-core, чтобы использовать JMock. Просто следуйте руководству на веб-сайте (не используйте версию 1 JMock) и упорядочивайте свои библиотеки в правильном порядке (JUnit должен быть последним, чтобы избежать вашей ошибки)

0

mock frameworks licke jmock do some black magic за кулисами (включая, но не ограничиваясь ими, манипулирование байтами во время выполнения) , чтобы предоставить классы ложных методов и что угодно. Чтобы это сделать, необходимы некоторые настройки в основных классах junit, и единственный способ сделать это - зарегистрировать себя как java-агент перед загрузкой классов JU.

Кроме того, поставить макет рамки, прежде чем JUnit в

классам
1

Я коммиттера на обеих библиотек. JMock зависит от hamcrest, чтобы помочь ему решить, будет ли ожидаться вызов объекта. Я предлагаю просто использовать банку для хранения хлопка. Разделение между ядром и библиотекой hamcrest заключалось в том, чтобы отделить основное поведение сопоставления и отчетности от удобных реализаций наиболее распространенных случаев.

Наконец, если вы используете Hamcrest, я предлагаю вам использовать JUnit-отд банку, чтобы избежать столкновения с некоторыми особенностями Hamcrest, которые включены в junit.jar

Смежные вопросы