【问题标题】:Inject mock into methods field将模拟注入方法字段
【发布时间】:2013-07-30 09:38:50
【问题描述】:

我想将模拟对象注入到测试 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()?

【问题讨论】:

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


    【解决方案1】:

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

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

    您可以不注入该类,但是您当然需要更改代码。根据您想要测试的内容,像 Byteman 这样的库可以提供帮助,尤其是在您尝试测试错误案例时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多