Java Junit runner和所有bean被嘲笑
我实际上是在一个Dropwizard项目上,我问自己是否有可能有一个运行程序,默认情况下,它将模拟运行测试服务所需的所有bean。运行程序不必为每个bean在测试类上添加@Mock,而是对所有bean进行模拟,当我需要覆盖其中一个bean(将模拟转换为间谍)时,我可以在测试类上执行此操作 例如,此代码:Java Junit runner和所有bean被嘲笑,java,unit-testing,junit,junit4,Java,Unit Testing,Junit,Junit4,我实际上是在一个Dropwizard项目上,我问自己是否有可能有一个运行程序,默认情况下,它将模拟运行测试服务所需的所有bean。运行程序不必为每个bean在测试类上添加@Mock,而是对所有bean进行模拟,当我需要覆盖其中一个bean(将模拟转换为间谍)时,我可以在测试类上执行此操作 例如,此代码: @RunWith(MockitoJUnitRunner.class) public class BuilderTest { @Mock private A a; @S
@RunWith(MockitoJUnitRunner.class)
public class BuilderTest {
@Mock
private A a;
@Spy
private B b;
@InjectMocks
private C c;
}
将成为:
@RunWith(CustomMockitoJUnitRunner.class)
public class BuilderTest {
@Spy
private B b;
@InjectMocks
private C c;
}
有可能吗?这没有多大意义。你为什么要嘲笑你没有用的东西?如果您的组件使用了大量的注射剂,这使得测试变得更加困难,那么这就是减少注射剂数量的信号,而不是试图在测试中四处挥舞(因为从长远来看,注射剂将更容易处理)。您是对的,不幸的是,这是一个老项目,现在不可能减少注入的数量,这就是为什么我要寻找一个像我描述的那样的临时解决方案