Насмешливый JBoss получает установленный вызов bean - PullRequest
0 голосов
/ 30 ноября 2011

Я пишу некоторые модульные тесты для класса, у которого был вызов JBossWebMicrocontainerBeanLocator .getInstalledBean("name").Я хочу иметь возможность смоделировать возвращаемый объект с помощью EasyMock, хотя я не очень хорошо знаком с его техническими особенностями.

Моя проблема в том, что конструктор не принимает имя компонента в качестве аргумента, а вызовJBoss находится в частном методе.В настоящее время я вижу две доступные мне опции:

  1. Создать защищенный конструктор с необходимыми аргументами
  2. изменить видимость метода на защищенный

Оба эти варианта нежелательны, так как они связаны с изменениями кода исключительно для тестирования, есть ли другой вариант?Этот код в настоящее время не использует платформу Injection, но это может быть еще одной областью для изучения.

1 Ответ

0 голосов
/ 12 марта 2012

Если я правильно понял ваш вопрос, то вам нужно будет смоделировать метод getInstalledBean из JBossWebMicrocontainerBeanLocator, а затем в возвращении с поддельными значениями вы вернете объект с поддельным компонентом, как в примере:

JBossWebMicrocontainerBeanLocator locatorMock EasyMock.createMock(JBossWebMicrocontainerBeanLocator.class);
EasyMock.expect(locatorMock.getInstalledBean("name")).andReturn(createBeanMock()); //where createBeanMock() returns mocked bean
EasyMock.replay(locatorMock);

пожалуйстаобратите внимание, что вы можете позволить mock изменить параметр "name" с помощью anyString (), который удовлетворит любую переданную строку.

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

...