TestNG и Spring 3

У меня был тот же самый вопрос, и ему ответило это:
Предоставленный, Вы могли сделать то, в чем Вы описали, "Затем Вы могли просто do:..." (давайте назовем тот "класс A"). Однако это связало бы класс A с HandSaw, или со всеми зависимостями, необходимыми от класса SawMill. Почему A должен быть связан с HandSaw - или при взятии более реалистического сценария почему моя бизнес-логика должна быть связана с реализацией соединения JDBC, необходимой для уровня DAO?
решением, которое я предложил затем, было "затем перемещение зависимости один шаг вперед" - хорошо, поэтому теперь мне связали мое представление с соединением JDBC, где я должен только иметь дело с HTML (или Swing, выберите свою разновидность).

платформа DI, настроенная XML (или JavaConfig), решает это, позволяя Вам просто "получить необходимый сервис". Вы не заботитесь, как это инициализируется, что это должно работать - Вы просто получаете объект службы и активируете его.

кроме того, у Вас есть неправильное представление там относительно "плюс": (где Вы делаете SawMill springSawMill = (SawMill)context.getBean("sawMill"); springSawMill.run();) - Вы не должны получать боб лесопилки от контекста - боб лесопилки должен был быть введен в Ваш объект (класс A) платформой DI. таким образом вместо... getBean (...), Вы просто пошли бы "sawMill.run ()", не заботясь, куда это прибыло из, кто инициализировал его и как. Для всего Вы заботитесь, это могло перейти прямо к/dev/null, или тестовому выводу или реальному механизму CNC... Точка - Вы не заботитесь. Все, о чем Вы заботитесь, является Вашим крошечным небольшим классом A, который должен сделать то, что он законтрактован, чтобы сделать - активируют лесопилку.

6
задан ROMANIA_engineer 19 October 2016 в 14:51
поделиться

4 ответа

Теперь проблема, похоже, не связана ни с одним из Spring или TestNG. Ключевая часть:

 java.lang.IncompatibleClassChangeError: class org.hibernate.cfg.ExtendedMappings has interface org.hibernate.cfg.Mappings as super class

Вы уверены, что ваш КЛАСС в порядке? Т.е. у вас есть совместимая версия модулей Hibernate и нет повторов?

Что, если вы создадите простой тест TestNG, который выполняет следующие действия:

Class.forName("org.hibernate.cfg.ExtendedMappings");

?

5
ответ дан 8 December 2019 в 17:23
поделиться

См. Главу о TestNG в документации Spring:

1
ответ дан 8 December 2019 в 17:23
поделиться

Ваш тестовый ckass должен расширять AbstractTestNGSpringContextTests . Или, если ваш код тестирует базу данных, доступ к другому полезному классу для расширения - AbstractTransactionalTestNGSpringContextTests .

7
ответ дан 8 December 2019 в 17:23
поделиться

Вы можете попробовать hibernate-annotations-3.5.0-Beta-1, поскольку это соответствует hibernate-core-3.5.0-Beta-1.

Я все еще получаю java .lang.IncompatibleClassChangeError иногда, так как я пытаюсь использовать поиск в спящем режиме, который использует "старые" аннотации.

Также не уверен, что вы используете JBoss, но если да, то получите эту ошибку с ядром 3.5 .0.

0
ответ дан 8 December 2019 в 17:23
поделиться
Другие вопросы по тегам:

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