我想将mock对象注入测试bean的方法字段中。 我们有......像:
@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();
}
}
可以在不对TestedBean代码进行任何更改的情况下模拟ClassIWantToMock()吗?
答案 0 :(得分:0)
你指的是像Mockito这样的实际模拟框架吗?或者你想要实现/测试到底是什么?
你问题的简单答案是否定的。只要您直接在 testedMethod 中实例化实例,就无法模拟它。
你能不能注入课程,但当然你需要更改代码。根据你想要测试的像Byteman这样的库可以提供帮助,特别是如果你试图测试错误情况。