0

Я хочу ввести mock-объект в поля метода в тестировании bean-компонента. У нас есть sth. как:Inject mock into methods

@Stateless 
@LocalBean 
public class TestedBean implements TestedBeanInterface 
{ 
    public OtherClass testedMethod { 
    private ClassIWantToMock necessaryField = new ClassIWantToMock(); 
    return necessaryField.doThingsImpossibleToDoAtTest(); 
    } 
} 

И фасоль, я тестирую таким образом:

@RunWith(Arquillian.class) 
public class TripPlannerFactoryBeanTest { 

    @Deployment 
    public static JavaArchive createDeployment() { 
     // 
    } 

    @EJB(mappedName = "java:module/TestedBean!ab.abc.abcd.TestedBean") 
    TestedBean testedBean; 

    @Test 
    public void testMethodOfTestedBean(){ 
    testedBean.testedMethod(); 
    } 
} 

можно издеваться ClassIWantToMock() без каких-либо изменений в TestedBean коде?

ответ

0

Вы имеете в виду фактические макеты, такие как Mockito? Или что именно вы хотите достичь/проверить?

Простой ответ на ваш вопрос: нет. Пока вы создаете экземпляр экземпляра непосредственно в checkedMethod, нет никакого способа издеваться над ним.

Не могли бы вы ввести класс вместо этого, но, конечно, вам нужно будет изменить код. В зависимости от того, что вы хотите протестировать в библиотеке, например, Byteman, может помочь, особенно если вы пытаетесь проверить ошибки.