zoukankan      html  css  js  c++  java
  • junit测试套件

    在实际项目中,随着项目进度的开展,单元测试类会越来越多,可是直到现在我们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的。为了解决这个问题,JUnit 提供了一种批量运行测试类的方法,叫做测试套件。

    这样,每次需要验证系统功能正确性时,只执行一个或几个测试套件便可以了。测试套件的写法非常简单,我们需要遵循以下规则:

    1.  创建一个空类作为测试套件的入口。

    2.  使用注解 org.junit.runner.RunWith 和 org.junit.runners.Suite.SuiteClasses 修饰这个空类。

    3.  将 org.junit.runners.Suite 作为参数传入注解 RunWith,以提示 JUnit 为此类使用套件运行器执行。

    4.  将需要放入此测试套件的测试类组成数组作为注解 SuiteClasses 的参数。

    5.  保证这个空类使用 public 修饰,而且存在公开的不带有任何参数的构造函数。

    现在OK了,我们来写代码,这里我写2个测试类,然后让这2个类形成一个测试套件,来一起被测试:

    package test.junit4test;
    
    import org.junit.Assert;
    import org.junit.Test;
    
    public class LinkinTest1
    {
    
    	@Test
    	public void testTrue()
    	{
    		System.out.println("测试一。。。");
    		Assert.assertTrue(true);
    	}
    
    }
    
    package test.junit4test;
    
    import org.junit.Assert;
    import org.junit.Test;
    
    public class LinkinTest2
    {
    
    	@Test
    	public void testTrue()
    	{
    		System.out.println("测试二。。。");
    		Assert.assertFalse(false);
    	}
    
    }
    
    package test.junit4test;
    
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    
    @RunWith(Suite.class)
    @SuiteClasses({ LinkinTest1.class, LinkinTest2.class })
    public class LinkinAllTest
    {
    
    }
    


    上例代码中,我将2个测试类放入了测试套件LinkinAllTest中,在 Eclipse 中运行测试套件,可以看到2个测试类被调用执行了。测试套件中不仅可以包含基本的测试类,而且可以包含其它的测试套件,这样可以很方便的分层管理不同模块的单元测试代码。

    注意:一定要保证测试套件之间没有循环包含关系,否则无尽的循环就会出现在我们的面前。

    OK,最后我们写一个测试组件又包含测试组件的例子结束这篇博客。

    package test.junit4test;
    
    import org.junit.Assert;
    import org.junit.Test;
    
    public class LinkinTest1
    {
    
    	@Test
    	public void testTrue()
    	{
    		System.out.println("测试一。。。");
    		Assert.assertTrue(true);
    	}
    
    }
    
    package test.junit4test;
    
    import org.junit.Assert;
    import org.junit.Test;
    
    public class LinkinTest2
    {
    
    	@Test
    	public void testTrue()
    	{
    		System.out.println("测试二。。。");
    		Assert.assertFalse(false);
    	}
    
    }
    
    package test.junit4test;
    
    import org.junit.Assert;
    import org.junit.Test;
    
    public class LinkinTest3
    {
    
    	@Test
    	public void testTrue()
    	{
    		System.out.println("测试三。。。");
    		Assert.assertEquals("1", "1");
    	}
    
    }
    
    package test.junit4test;
    
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    
    @RunWith(Suite.class)
    @SuiteClasses({ LinkinTest1.class, LinkinTest2.class })
    public class LinkinAllTest1
    {
    
    }
    package test.junit4test;
    
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    import org.junit.runners.Suite.SuiteClasses;
    
    @RunWith(Suite.class)
    @SuiteClasses({ LinkinAllTest1.class, LinkinTest3.class })
    public class LinkinAllTest2
    {
    
    }
    



  • 相关阅读:
    计算一个未排序数组中排序后相邻元素的最大差值
    13 类对象的声明中加小括号{}和不加小括号{}的区别
    12 表中删除重复项
    11 常量区的内容不能被修改
    10 无向图的边
    顺时针旋转矩阵
    字符串的旋转
    动态规划算法
    贪心算法应用-最小生成树
    贪心算法应用-单元最短路径
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5232887.html
Copyright © 2011-2022 走看看