说说JUnit4下的单元测试用例的使用

发表于:2010-9-26 13:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  在我们平常的项目开发中,测试是显得越来越重要了!我们很多的时候,就是测试与开发同步,测试代码和工作代码应同步编译和更新!下面,阿堂就跟朋友们一起来学习吧!

  从JUnit4.X开始,JUnit不再要求测试用例继承TestCase基类,不再要求测试方法以test开头。为了让JUnit发现系统的测试用例和测试方法,JUnit提供了Annotation修饰.

  @Test:所有希望被运行的测试方法都应该使用该Annotation

  @Before:如果希望每次运行测试方法之前先运行指定的回收资源的方法,则该回收资源的方法使用@Before Annotation修饰.

  @After:如果希望每次运行测试方法之后运行指定的回收资源的方法,则该回收资源的方法使用@After Annotation修饰.

  @Ignore:如果希望Junit忽略某个被测试的方法,可以使用@Ignore Annotaion来修饰.

  有过JUnit3.x编程经验的测试人员可能知道,测试用例中可以包含setUp(),tearDown()2个方法。@Before类似于JUnit3.x中的setUp()方法,@After修饰的方法类似于tearDown()方法.

  JUnit4对于测试用例的要求比JUnit3.x宽松得多,例如,不再要求测试用例必须继承TestCase,不再要求测试方法必须以test开头,等等。但我们最好依然遵守如下规则

  (1)测试用例类使用public修饰

  (2)测试用例的测试方法使用public修饰

  (3)测试用例的测试方法的返回值应该是void

  (4)测试用例中测试方法不应该有任何参数

  Assert类提供了大量的断言方法,包括基本断言,数字断言,字符断言,布尔断言,对象断言。其中assertEquals(Object expected,Object actual)内部使用equals()方法,用于判断两个对象的值是否相等.assertSame(Object expected,Object actual)内部采用"=="判断,用于判断两个对象是否来自于同一个引用.

  第一种情况运行单个测试用例

  (1)被测试的类

package junittest;
public class MyMath
{

public double oneEquation(double a,double b)
{
  //如果a=0,则防范无法求解
  if(a==0)
  {
   System.out.println("参数错误");
   throw new ArithmeticException("参数错误");
  }
  else
  {
   System.out.println("一元一次方程有解");
   return -b/a;
  }
}

public double[] twoEquation(double a,double b,double c)
{
  double[] result;
  if(a==0)
  {
   System.out.println("****************************"); 
   throw new ArithmeticException("参数错误");
  }
  //有理数范围内无根
  else if(b*b-4*a*c<0)
  {
   System.out.println("****************************"); 
   throw new ArithmeticException("方程在理数范围内无解");
  }
  //方程有唯一的解
  else if(b*b-4*a*c==0)
  {
   System.out.println("****************************"); 
   System.out.println("方程存在唯一的解");
   result=new double[1];
   result[0]=-b/(2*a);
   return result;
  }
  //方程有两个根
  else
  {
   System.out.println("****************************");
   System.out.println("方程存在两个解");
   result=new double[2];
   //使用数组返回方程的两个根
   result[0]=(-b+Math.sqrt(b*b-4*a*c))/2/a;
   result[1]=(-b-Math.sqrt(b*b-4*a*c))/2/a;
   return result;
  }
}
}

51/512345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号