使用JMockIt,JUnit做单元测试示例代码,jmockitjunit,使用jMockit首先要
分享于 点击 28904 次 点评:160
使用JMockIt,JUnit做单元测试示例代码,jmockitjunit,使用jMockit首先要
使用jMockit首先要引用相关的jar包,pom文件引用如下
<dependency> <groupId>com.googlecode.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.0</version> <scope>test</scope> </dependency> <dependency> <groupId>mockit</groupId> <artifactId>mockit</artifactId> <version>0.999.4</version> <scope>test</scope> <type>pom</type> </dependency> <dependency> <groupId>mockit</groupId> <artifactId>jmockit-coverage</artifactId> <version>0.999.4</version> </dependency>
jMockit测试实例代码如下:
public class UserServiceAPITest { @BeforeClass static public void beforeClass() { Mockit.setUpMocks(); } // 代表要打桩的类,在UserService中用户了UserManager类,对此类进行打桩 @Mocked private UserManager userManager = null; final String account = "13810481296"; // 待测试类的实例 private UserService userService = new UserService(); @Test public void testAuthorizeUser() throws ApiCallException { // 开始打桩 new Expectations() { { // 期望被mock的调用,以及被调用时返回的结果 userManager.getUser(account); UserEntity userEntity; userEntity = new UserEntity(); userEntity.setUserId(13L); userEntity.setPassword(MD5Util.MD5(account)); userEntity.setMsisdn(account); userEntity.setMsisdnStatus(1); result = userEntity; // 也可以是returns(false); // 总共可以调用的次数 times = 1; } }; // 验证数据,与打桩数据相同 UserInfo userInfo = new UserInfo(); userInfo.userId = 13L; userInfo.password = MD5Util.MD5(account); userInfo.msisdn = account; userInfo.msisdnStatus = 1;// userService.authorizeUser(account, account); Assert.assertEquals(userInfo.getUserId(), userService.authorizeUser(account, account) .getUserId()); }}//测试样例2,有Spring依赖及void方法测试public class TagServiceTest { @BeforeClass static public void beforeClass() { Mockit.setUpMocks(); } @Tested private TagServiceImpl tagServiceImplService = new TagServiceImpl(); @Injectable TagManager tagManager; private String name = "test"; @Test public void testFindByName() throws Exception { // 开始打桩 new Expectations() { { // 期望被mock的调用,以及被调用时返回的结果// tagManager = new TagManager(); tagManager.findByName(name, true); List<TagEntity> tagList = new ArrayList<TagEntity>(); TagEntity tagEntity = new TagEntity(); tagEntity.setId(1); tagEntity.setName("test"); tagEntity.setCategory(1); tagEntity.setDesc("desc"); tagList.add(tagEntity); result = tagList; // 也可以是returns(false); // 总共可以调用的次数 times = 1; } }; // 验证数据,与打桩数据相同 List<TagEntity> tagList = new ArrayList<TagEntity>(); TagEntity tagEntity = new TagEntity(); tagEntity.setId(1); tagEntity.setName("test"); tagEntity.setCategory(1); tagEntity.setDesc("desc"); tagList.add(tagEntity); List<TagEntity> assertList = new ArrayList<TagEntity>(); assertList.add(tagEntity); List<TagEntity> returnList = tagServiceImplService.findByName(name, true); Assert.assertEquals(assertList.get(0).getId(), returnList.get(0).getId()); } @Test public void testDelete() throws Exception { // 开始打桩 new Expectations() { { // 期望被mock的调用,以及被调用时返回的结果// tagManager = new TagManager(); tagManager.delete(1); times = 1; } }; // 验证数据,与打桩数据相同 tagServiceImplService.delete(1); }}
用户点评