(MockEJB) Получить фиктивный объектный компонент из теста в контейнере

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

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

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

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

  • кактус-1.7.2.jar
  • cglib-узел-2.1_3.jar
  • Commons-httpclient-2.0.2.jar
  • Commons-регистрация-1.0.4.jar
  • powermock-easymock-1.3.9-full.jar
  • Юнит-3.8.1.jar
  • mockejb.jar

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

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


person Jon Cardoso    schedule 13.07.2011    source источник


Ответы (1)


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

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

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

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

person dbalakirev    schedule 13.07.2011
comment
Спасибо, я пытаюсь. Но теперь проблема в том, что класс, который выполняет поиск, является синглтоном =S. Итак, я попытался следовать инструкциям, чтобы имитировать конкретно статические методы (redchilliplus.wordpress.com/2010/06/08/ и code.google.com/p/powermock/source/browse/trunk /modules/), но ни один из них не работал =/ - person Jon Cardoso; 15.07.2011
comment
Я забыл упомянуть, но, похоже, макет неправильно работает с JVM, которую я использую. Выдает ошибку: ‹Имя класса› не является интерфейсом. даже при использовании EasyMock 3 или EasyMock 2.x с расширениями класса или PowerMock =S - person Jon Cardoso; 15.07.2011
comment
Если вы опубликуете, как вы специально настроили свой тестовый класс и путь к классам (или pom.xml), возможно, мы сможем помочь. - person dbalakirev; 16.07.2011
comment
Спасибо за ответ, я обновил вопрос, если есть какая-либо другая информация, которую важно упомянуть, подскажите... - person Jon Cardoso; 18.07.2011