(MockEJB) Получить бин с фиктивной сущностью из теста в контейнере - PullRequest
1 голос
/ 13 июля 2011

Я использую инфраструктуру mockejb для имитации бинов сущностей в памяти, я делаю поиск, mockejb приносит мне прокси для реальной сущности.Это работает.

Но мне нужно было получить Session Bean из JNDI контейнера, чтобы «понять» это.Я имею в виду, что когда Session Bean выполняет поиск в Entity Bean, я хочу, чтобы он получал объект, над которым я издевался, а не bean-компонент из базы данных.

Я не могу издеваться над этим Session Bean, потому что внутриметод, который я пытаюсь смоделировать, есть поиск объекта EJB, поэтому мне нужно, чтобы этот метод выполнялся нормально, но для получения макета EJB при поиске.

[ОБНОВЛЕНИЕ] Информация о моей среде разработки: Iя использую IBM RSA 7.5, IBM Websphere 6.1, у меня есть проект веб-теста, который выполняется в контейнере с Cactus, последние библиотеки на моем пути к классам:

  • cactus-1.7.2.jar
  • cglib-nodep-2.1_3.jar
  • commons-httpclient-2.0.2.jar
  • commons-logging-1.0.4.jar
  • powermock-easymock-1.3.9-full.jar
  • junit-3.8.1.jar
  • mockejb.jar

Obs .:Я уже перешел на последнюю версию PowerMock с jUnit4, пытался использовать только EasyMock 3.0, а также пробовал EasyMock 2.x с расширениями своего класса.Ничто из этого не сработало.Что меня действительно заинтриговало, так это конфигурация DefaultInstantiator, упомянутая в документации EasyMock: http://easymock.org/EasyMock2_4_ClassExtension_Documentation.html. Мне было интересно, подходит ли это мой случай (не поддерживается JVM), и я не смог заставить его работать.

Спасибо за помощь.

1 Ответ

1 голос
/ 13 июля 2011

"Я не могу издеваться над этим сессионным компонентом, потому что внутри метода, который я пытаюсь смоделировать, есть поиск по объектному компоненту, так что"

Разве вы не можете использовать что-то вроде PowerMock для «подделки» поиска? Как с заменой методов и т. Д.

Вот кое-что, с чем я столкнулся в последнее время: http://dave00ster.blogspot.com/2011/07/powermock-static-method-replace.html

Надеюсь, это поможет, dave00

...