eclipse配置mockito

  1. 解压自动生成单元测试.rar , 解压后的文件复制到eclipse的plugins目录
  2. 重启eclipse
  3. 选中要java代码,右键,点击生成测试代码,配置模板



配置mockito模板

1.配置mockito标签

复制下面代码到

<#include 'Function.ftl' >
<#include 'Header.ftl' >
<#include 'Body.ftl' >

 

2.配置mockito 下的function

 

复制下面代码到

<#function genNewJavaTypeExpr paramClazz varName>
     <#local result>
         <#compress>
             <# if (paramClazz. interface )>
                 <# if paramClazz.name?ends_with( "java.util.List" )>
                 List ${varName} = new ArrayList();
                 <#elseif paramClazz.name?ends_with( "java.util.Map" )>
                 Map ${varName} = new HashMap();
                 <#elseif paramClazz.name?ends_with( "java.util.Set" )>
                 Set ${varName} = new HashSet();
                 <#elseif paramClazz.name?ends_with( "java.util.Queue" )>
                 Queue ${varName} = new LinkedList();
                 <# else >
                 ${paramClazz.simpleName} ${varName} = Mockito.mock(${paramClazz.simpleName}. class );
                 </# if >
             <#elseif (paramClazz.simpleName== 'boolean' )>
                 boolean ${varName} = true ;
             <#elseif (paramClazz.array)>
                 ${paramClazz.simpleName} ${varName} = new ${paramClazz.simpleName}{};
             <#elseif (paramClazz.primitive)>
                 ${paramClazz.simpleName} ${varName} = 1 ;       
             <#elseif (paramClazz.simpleName== 'String' )>
                 String ${varName} = "abc" ;
             <# else >
                 ${paramClazz.simpleName} ${varName} <# if !paramClazz. enum >= new ${paramClazz.simpleName}()</# if >;
             </# if >
         </#compress>
     </#local>
     <# return result>
</#function>
<#macro genJunitAssert returnType>
     <# if (returnType.name== "void" )>
         <# return >
     </# if >
     <# if (returnType.name== "boolean" ||returnType.simpleName== "Boolean" )>
         assertTrue(resultObj);
         <# return >
     </# if >
         assertNotNull(resultObj);
     <# if (returnType.array)>
         assertTrue( "must be not empty" ,resultObj.length > 0 );
     <# return >
     </# if >
     <# if (returnType. interface )>
         <# if returnType?ends_with( "java.util.List" )>
         assertFalse( "must be not empty" ,resultObj.isEmpty());
         <#elseif returnType?ends_with( "java.util.Map" )>
         assertFalse( "must be not empty" ,resultObj.isEmpty());
         <#elseif returnType?ends_with( "java.util.Queue" )>
         assertFalse( "must be not empty" ,resultObj.isEmpty());     
         <#elseif returnType?ends_with( "java.util.Set" )>
         assertFalse( "must be not empty" ,resultObj.isEmpty());     
         </# if >
     </# if >
</#macro>
<#function genMockType paramType>
     <#local result>
         <#compress>
             <# if (paramType.simpleName== 'boolean' )>
                 anyBoolean()
             <#elseif (paramType.simpleName== 'int' )>
                 anyInt()
             <#elseif (paramType.simpleName== 'long' )>
                 anyLong()
             <#elseif (paramType.simpleName== 'byte' )>
                 anyByte()
             <#elseif (paramType.simpleName== 'short' )>
                 anyShort()
             <#elseif (paramType.simpleName== 'float' )>
                 anyFloat()
             <#elseif (paramType.simpleName== 'double' )>
                 anyDouble()
             <#elseif (paramType.simpleName== 'String' )>
                 anyString()
             <#elseif ((paramType. interface )&&paramType.name?ends_with( "java.util.List" ))>
                 anyList()
             <#elseif ((paramType. interface )&&paramType.name?ends_with( "java.util.Map" ))>
                 anyMap()
             <#elseif ((paramType. interface )&&paramType.name?ends_with( "java.util.Set" ))>
                 anySet()
             <# else >
                 any(${paramType.simpleName}. class )
             </# if >
         </#compress>
     </#local>
     <# return result>
</#function>

 

 

3.配置mockito 下的header

复制下面代码到

/**
  * huifu.com Inc.
  * Copyright (c) 2004-2011 All Rights Reserved.
  */
package ${MyPackageName};
import java.util.Map;
import java.util.List;
import java.util.ArrayList;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import static org.mockito.Mockito.*;
import org.mockito.runners.MockitoJUnitRunner;
<#list pc.importClass as importClazz>
import ${importClazz.name?replace( "$" , "." )};
</#list>

 

4. 配置body

复制模板代码

/**
  *
  * @author ***
  * @version $Id: ${MyClassName}.java, v 0.1 ${curDate} *** Exp $
  */
  @RunWith (MockitoJUnitRunner. class )
public class ${MyClassName}{
     /** test object */
     @InjectMocks
     protected ${genNewJavaTypeExpr(pc,pc.simpleName?uncap_first)}
     
     <#include 'MockField.ftl' >
     <#include 'TestMethods.ftl' >
     
     <#include 'SetupTeardown.ftl' >
     
}

 

5. 配置MockField

复制模板代码

<#list pc.injectedFields as prop>
         <# if !prop.type.name?starts_with( "java" ) && !prop.type.primitive>
     @Mock
     ${prop.type.simpleName} ${prop.name?uncap_first};
         </# if >
     </#list>

 

6.配置TestMethods

复制模板代码

<#-- init function -->
     <#list pc.methods as method>
     <# if (!method.propertyMethod && !(method.objectMethod && !method.overrided)) >
     //test ${pc.simpleName}.${method.name}(<#list method.parameters as param>${param.type.name}<#if param_has_next>, </#if></#list>)
     @Test
     public void test_${method.name}() throws Throwable{
         <#list method.parameters as param>
         ${genNewJavaTypeExpr(param.type, param.name)}
         </#list>
         <# if (method.returnType.name== "void" )>
         ${pc.simpleName?uncap_first}.${method.name}(<#list method.parameters as param>${param.name}<# if param_has_next>, </# if ></#list>);
         <#elseif (method.returnType.array)>
         ${method.returnType.simpleName} resultObj = ${pc.simpleName?uncap_first}.${method.name}(<#list method.parameters as param>${param.name} <# if param_has_next>,</# if ></#list>);
         <# else >
         ${method.returnType.simpleName?replace( "$" , "." )} resultObj = ${pc.simpleName?uncap_first}.${method.name}(<#list method.parameters as param>${param.name} <# if param_has_next>,</# if ></#list>);
         </# if >
         
         < @genJunitAssert method.returnType />
         
        <#list method.statements  as statement>
        //TODO ${statement}
        </#list>
         
     }
     
     </# if >
     </#list>

 

7.配置setup Teardown 模板

复制模板代码

@Before
     public void setUp() throws Exception {
         
         
         <#list pc.injectedFields as prop>
             <#list prop.type.declaredMethods as method>
                   <# if (!method.propertyMethod && !method.objectMethod && pc.quotedMethods?seq_contains(prop.name+ "_" +method.name+ "_" +method.parameters?size))>
<# if (method.returnType.simpleName!= "void" )>
         //Mock function ${prop.name}->${method.name}
         ${genNewJavaTypeExpr(method.returnType,method.name+ 'Res_1' )}
         when(${prop.name?uncap_first}.${method.name}(<#list method.parameters as param><# if param.type.array>any(${param.type.simpleName}. class )
             <# else >${genMockType(param.type)}</# if ><# if param_has_next>,</# if ></#list>)).thenReturn(${method.name+ 'Res_1' });
</# if >
                 </# if >
              </#list>
         </#list>
     }
     
     @After
     public void tearDown() {
     }

mockito代码生成

1.mockito 代码生成

 

 

2.选择mockit生成  点击开始生成


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值