很多J2EE应用都是基于Spring的,一些比较复杂的测试用例,如果用基于TestCase比较难满足全部的测试场景。
所以,我们会用到一些Mock工具,如PowerMockito:
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>1.4.10</version>
<scope>test</scope>
</dependency>
但用PowerMockito去MockSpring容器管理的实例,有些时候会存在一些问题,利用MiniTestCase可以避免。也可以基于MiniTestCase扩展出更复杂的TestCase。
TestCase如下:
package com.x.commons.test;
import javax.management.InstanceNotFoundException;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
public class UserServiceTest extends MiniTestCase {
private static IUserService userService = new UserServiceImpl();
/**
* @throws Exception
*
*/
public UserServiceTest() throws Exception {
// TODO Auto-generated constructor stub
/**
* UserServiceImpl类属性userDao由Spring注入和维护。
* 当然,也可以将UserServiceImpl类内的属性全部Mock。如:super(userService);
*/
super(userService, IUserCommon.class);
}
/**
* Test method for {@link com.x.commons.test.UserServiceImpl#reg(java.lang.String, java.lang.String)}.
* @throws InstanceNotFoundException
*/
@Test