欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

使用JMockIt,JUnit做单元测试示例代码,jmockitjunit,使用jMockit首先要

来源: javaer 分享于  点击 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);    }}
相关栏目:

用户点评