小编Aya*_*ant的帖子

使用MockitoJUnitRunner.class而不是SpringJUnit4ClassRunner.class

我有一个关于使用的问题SpringJUnit4ClassRunner.对于纯Junits或单元测试用例,我们是否应该使用基于Spring的注释,例如@Autowired,SpringJUnit4ClassRunner或者我们是否应该只使用Test类顶部MockitoJUnitRunner@RunWith注释?

我的意思是更换

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:test-applicationContext.xml" })
Run Code Online (Sandbox Code Playgroud)

只是

@RunWith(MockitoJUnitRunner.class)
Run Code Online (Sandbox Code Playgroud)

在班上.这个对我有用.

在Junits中,我们通常不会进行任何外部调用,例如调用DB或调用其他Web服务.我们必须使用@Mock此服务对象上的注释来模拟这些外部调用.然后创建我们正在测试的类的真实对象,这取决于这些模拟.然后我们可以@InjectMocks在真实对象上使用它,以便它将被注入模拟对象.

示例服务-A->呼叫 - >服务-B->呼叫 - >服务-C

在测试A时,我们应该在测试Service-B时模拟服务B,我们应该模拟Service-C.

一些代码片段

@RunWith(MockitoJUnitRunner.class)
public class TestServiceA {
    @Mock
    B mockObj;

    @InjectMocks
    A realObj;

    @Test
    public void testServiceA() {
    .....
    .....
    }
}       
Run Code Online (Sandbox Code Playgroud)

所以,我觉得对于Unit测试用例,我们不需要依赖Spring容器来为我们提供我们正在测试的类的实例.

请提出你的建议.

使用SpringJUnit4ClassRunner.class而不是MockitoJUnitRunner.class

java junit unit-testing

16
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

junit ×1

unit-testing ×1