彩票走势图

Juint自动化测试之数据与代码分离测试方法

原创|行业资讯|编辑:龚雪|2014-03-20 10:14:42.000|阅读 1118 次

概述:自动化测试中,测试代码冗余和测试代码与数据分离的问题一直是测试人员讨论的话题。小编整理了现在测试人员应用Junit应对这两个问题的办法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

自动化测试中,测试人员一直讨论如何在特定的正常条件和异常条件下运行系统,检查系统漏洞。通常情况下,大量不同的输入,但处理逻辑的业务不变,对其结果进行验证也会有不同的期望值。这样也产生了大量了冗余代码。

目前测试人员都通过自己的工具和技术一定程度解决了测试代码与数据分离及测试代码冗余的问题,下面介绍junit工具自动测试方法

Junit(文章中Junit都是指的Junit4)给出了参数化的特性,从而实现了不同的输入对应相同的代码。

测试方法:

public class UserAccess 
 {
  // simple validation for user name and password
  public static boolean accessCheck(String userName, String password)
   {
  if (userName.length() <= 4 || userName.length() > 8 )
  return false;
  if (password.length() <= 4 || password.length() > 8 )
  return false;
  if (userName.contains("@" ))
  return false; 
  if (password.contains("*" ))
  return false;
  return true; 
  }
 }

使用Junit参数化,减少代码冗余:

import java.util.Arrays; 
  import java.util.Collection; 
  import org.junit.Test;
  import org.junit.runner.RunWith; 
  import org.junit.runners.Parameterized;
  import org.junit.runners.Parameterized.Parameters;
  import static org.junit.Assert.assertEquals ;
  import sample.junit.code.UserAccess;
  /*
  * JUnit - Parameter test sample
  */
  @RunWith(Parameterized.class)
  public class JunitSample 
 {
  private String user ; 
  private String pwd ; 
  private boolean expected ; 
  @Parameters 
  public static Collection dataGenerate()
   {
  return Arrays.asList( new Object[][]
    {
  { "user01","123456" ,true},
  { "user02","123456" ,true},
  { "user03","12345678" ,true} 
  });
  }
  public JunitSample(String user,String pwd,boolean expected)
   {
  this.user = user; 
  this.pwd = pwd;
  this.expected = expected;
  }
  @Test 
  public void testAccessCheck(){
  assertEquals(expected,UserAccess. accessCheck(user, pwd));
  }
 }

运行结果:

JUNIT调试

数据与代码的分离(Feed4Junit):

import static org.junit.Assert.assertEquals ; 
  import org.databene.benerator.anno.Source;
  import org.databene.feed4junit.Feeder;
  import org.junit.Test;
  import org.junit.runner.RunWith; 
  import sample.junit.code.*;
  @RunWith (Feeder.class )
  public class Feed4junitSample
  {
  @Test
  @Source( "Data.csv" )//CSV source 
  public void testAccessCheck_CSV(String userName, String pw, boolean expected) 
       {
  assertEquals(expected, UserAccess. accessCheck(userName, pw));
  }
  @Test
@Source( "data.xls" )//Excel source
  public void testAccessCheck_Excel(String userName, String pw, boolean expected) 
       {
  assertEquals(expected, UserAccess. accessCheck(userName, pw)); 
  }
 }

运行结果如下:

JUNIT调试

最后通过通过 url,driver 等信息建立数据连接,数据库作为数据源。实现Junit自动化测试的数据与代码分离测试方法。


标签:软件测试技术

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP