单元测试Juit的使用经验介绍

           软件开发中,单元测试也很重要,能够快速检查、验证源代码中包含的错误,早期发现并解决错误,节省开发成本...,好处非常多,这里就不多说了。下面谈一下我使用单元测试组件Junit的经验。

          Junit使用起来很简单,在eclipse开发环境中只要引入Junit的jar包(如junit-4.4.jar),就可以编写测试类了。我使用的方法如下:

Spring环境下的Junit测试

我一般使用一个基类,我们的应用通常包含spring框架,所以我在基类中引入一些spring的环境文件,这样便于和开发环境一致。基类RootTest如下:

 

public abstract class RootTest extends TestCase {
    protected ApplicationContext  ctx;//spring的上下文类

    protected Log log = LogFactory.getLog(getClass());

    protected abstract String getBeanXml();//这里是取得一个spring配置xml文件
   
    protected String[] getBeanXmls() {//这里是取得多个spring配置xml文件,比较通用,其实用这个就够用了

  String[] locations = null;
  return locations;
 }
 @Override
 protected void setUp() throws Exception {//测试类加载时,初始化处理,读取环境变量
  if(getBeanXmls()!=null){
    ctx = new ClassPathXmlApplicationContext(getBeanXmls());
  }else{
    ctx = new ClassPathXmlApplicationContext(getBeanXml());
  }
 }

 @Override
 protected void tearDown() throws Exception {//测试类释放时,释放一些存储信息
  ClassPathXmlApplicationContext cc = (ClassPathXmlApplicationContext) this.ctx;
  if(cc!=null) cc.close();
 }
}

业务中使用测试类的方法如下:

public class TestMaxUserBizImpl extends RootTest {
 private MaxUserBiz maxUserBiz;//业务类的接口
 @Override
 protected String getBeanXml() {
  return null;
 }
 @Override
 protected String[] getBeanXmls() {//写入使用的spring配置文件信息
  String[] locations={"spring_test.xml",
    "mybatis.xml",
    "etc/app_test.xml",
    "cn/zwork/crm/oss/oss-bean.xml",
    "cn/zwork/crm/oss/ossLicenseExecute-mapper.xml",
    "cn/zwork/crm/oss/ossLicenseInfo-mapper.xml"
  };
  return locations;
 }
 protected void setUp() throws Exception {//初始化加载sprng配置信息
  super.setUp();
  //多租户环境设置
  TenantInfo tenantInfo=new TenantInfo();
  tenantInfo.setMultiTenant(true);
  tenantInfo.setTenantName("zcrm_develop");
  
  CurrentThreadContext.setTenantValue(tenantInfo);
  maxUserBiz = (MaxUserBiz) ctx.getBean("maxUserBiz");
 }
 //启用员工时,判断许可分配
 public void testassignLicense(){//测试类的方法
  String[] userIds={"1","2"};
  maxUserBiz.assignLicense(userIds);
 }
 

}

这样就可以了,测试时,只需要在eclipse中光标落在需要测试的方法testassignLicense上,右键点击Junit Test运行就可以得到结果了。

Http远程调用的测试

可以使用HttpClient类的一些方法,远程调用url来测试。范例如下:

public class TestOperationManageService {
  //这里使用一个内部类,主要解决统一字符集转换为utf-8

     private static class UTF8PostMethod extends PostMethod {
        public UTF8PostMethod(String url) {
            super(url);
        }

        @Override
        public String getRequestCharSet() {
            // return super.getRequestCharSet();
            return "UTF-8";
        }
    }

 @Test
 public void callCreate() throws HttpException, IOException{
    PostMethod method=new UTF8PostMethod(http://localhost:8080/oss/service/create);
//    写入参数Tenant对象
    String params="{tenant:'YAN0529',name:'test0529',contact:'test0508',post:'100025',phone:'65869047',email:'admin2@123.com',memo:'备注'}";//
    method.setParameter("action",params );
   
    HttpClient httpClient = new HttpClient();
   
       int code = httpClient.executeMethod(method);
       System.out.println(method.getResponseBodyAsString());
       System.out.println(code);
       method.releaseConnection();//释放连接
   }

}

synopsys软件简介《一》 2007-08-09 一 Astro  Astro是Synopsys为超深亚微米IC设计进行设计优化、布局、布线的设计环境。Astro可以满足5千万门、时钟频率GHz、在0.10及以下工艺线生产的SoC设计的工程和技术需求。Astro高性能的优化和布局布线能力主要归功于Synopsys在其中集成的两项最新技术:PhySiSys和Milkyway DUO结构。 二 DFT DFT Compiler提供独创的“一遍测试综合”技术和方案。它和Design Compiler 、Physical Compiler系列产品集成在一起的,包含功能强大的扫描式可测性设计分析、综合和验证技术。DFT Compiler可以使设计者在设计流程的前期,很快而且方便的实现高质量的测试分析,确保时序要求和测试覆盖率要求同时得到满足。DFT Compiler同时支持RTL级、门级的扫描测试设计规则的检查,以及给予约束的扫描链插入和优化,同时进行失效覆盖的分析。 三 TetraMAX TetraMAX ATPG是业界功能最强、最易于使用的自动测试向量生成工具。针对不同的设计,TetraMAX可以在最短的时间内,生成具有具有最高故障覆盖率的最小的测试向量集。TetraMAX支持全扫描、或不完全扫描设计,同时提供故障仿真和分析能力。 四 Vera Vera验证系统满足了验证的需要,允许高效、智能、高层次的功能验证。Vera验证系统已被Sun、NEC、Cisco等公司广泛使用以验证其实际的产品,从单片ASIC到多片ASIC组成的计算机和网络系统,从定制、半定制电路到高复杂度的微处理器。Vera验证系统的基本思想是产生灵活的并能自我检查的测试向量,然后将其结合到test-bench中以尽可能充分测试所设计的电路。Vera验证系统适用于功能验证的各个层次,它具有以下特点:与设计环境的紧密集成、启发式及全随机测试、数据及协议建模、功能代码覆盖率分析。 五 VCS VCS是编译型Verilog模拟器,它完全支持OVI标准的Verilog HDL语言、PLI和SDF。 VCS具有目前行业中最高的模拟性能,其出色的内存管理能力足以支持千万门级的ASIC设计,而其模拟精度也完全满足深亚微米ASIC Sign-Off的要求。VCS结合了节拍式算法和事件驱动算法,具有高性能、大规模和高精度的特点,适用于从行为级、RTL到Sign-Off等各个阶段。VCS已经将CoverMeter中所有的覆盖率测试功能集成,并提供VeraLite、CycleC等智能验证方法。VCS和Scirocco也支持混合语言仿真。VCS和Scirocco都集成了Virsim图形用户界面,它提供了对模拟结果的交互和后处理分析。 六 Power Compiler Power Compiler?提供简便的功耗优化能力,能够自动将设计的功耗最小化,提供综合前的功耗预估能力,让设计者可以更好的规划功耗分布,在短时间内完成低功耗设计。Power Compiler嵌入Design Compiler/Physical Compiler之上,是业界唯一的可以同时优化时序、功耗和面积的综合工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云焰

你的鼓励是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值