将mock注入方法字段

时间:2013-07-30 09:38:51

标签: unit-testing dependency-injection mocking ejb jboss-arquillian

我想将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()吗?

1 个答案:

答案 0 :(得分:0)

你指的是像Mockito这样的实际模拟框架吗?或者你想要实现/测试到底是什么?

你问题的简单答案是否定的。只要您直接在 testedMethod 中实例化实例,就无法模拟它。

你能不能注入课程,但当然你需要更改代码。根据你想要测试的像Byteman这样的库可以提供帮助,特别是如果你试图测试错误情况。

相关问题