Junit4测试

发表于:2008-3-13 16:20

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

 作者:未知    来源:网络转载

3) 运行测试
  系统会打开JUnit透视图,如果测试全部通过,则显示颜色条为绿色;我们将assertEquals(3,Math.divide(9,3));改成assertEquals(2,Math.divide(9,3));则显示颜色条为红色,我们可以对错误或者故障的地方进行追踪。

4) 创建测试套件
  测试套件可以将多个测试用例合在一起测试,将相关的测试用例合成一个测试套件,在做一个修改后,只需要运行测试套件就可以,不需要运行每一个测试用例。
  Junit4没有采用以前的套件测试方法,同样使用annotation的方式来进行。简单在你所要构建测试套件的包里创建一个文件,一般以包名+4Suite
  下面我在上面的测试包中复制一下之前的测试类并且一个改名字叫做MathTestAnother,新建一个class类叫做Uitl4Suite,代码如下:
Java代码
import org.junit.runner.RunWith;  
import org.junit.runners.Suite;  
import org.junit.runners.Suite.SuiteClasses;  
/** 
 * @author bulargy.j.bai 
 * @创建时间:Mar 11, 2008 
 * @描述:util包的测试套件 
 */ 
@RunWith(Suite.class)  
@SuiteClasses({MathTest.class,  
           MathTestAnother.class})  
public class Util4Suite {  

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
/**
 * @author bulargy.j.bai
 * @创建时间:Mar 11, 2008
 * @描述:util包的测试套件
 */
@RunWith(Suite.class)
@SuiteClasses({MathTest.class,
           MathTestAnother.class})
public class Util4Suite {
}

说明:
  通过@RunWith和@SuiteClasses标签来注释一个空的包含无参数构造函数的类来作为套件类,将需要组成套件运行的类加到@SuiteClasses的属性中即可。

  可以看到运行套件类的结果是2个测试类都进行了测试。

5) 参数测试
修改 testMultiple
Java代码
//@Ignore("忽略乘法测试")  
@Test 
public void testMultiple() {  
    assertEquals(result,Math.multiple(faciend,multiplicator));  

    //@Ignore("忽略乘法测试")
    @Test
    public void testMultiple() {
        assertEquals(result,Math.multiple(faciend,multiplicator));
    }

编写参数方法:
Java代码
@Parameters 
    public static Collection multipleValues() {  
        return Arrays.asList(new Object[][] {  
        {3, 2, 6 },  
        {4, 3, 12 },  
        {21, 5, 105 },  
        {11, 22, 242 },  
        {8, 9, 72 }});  
    } 

@Parameters
    public static Collection multipleValues() {
        return Arrays.asList(new Object[][] {
        {3, 2, 6 },
        {4, 3, 12 },
        {21, 5, 105 },
        {11, 22, 242 },
        {8, 9, 72 }});
    }

说明:
  需要使用@Parameters标签注解一个静态的返回集合对象的方法

  增加成员变量和构造函数:
Java代码
int faciend;  
int multiplicator;  
int result;  
 
public MathTest(int faciend, int multiplicator, int result) {  
    this.faciend = faciend;  
    this.multiplicator = multiplicator;  
    this.result = result;  

    int faciend;
    int multiplicator;
    int result;

    public MathTest(int faciend, int multiplicator, int result) {
        this.faciend = faciend;
        this.multiplicator = multiplicator;
        this.result = result;
    }

  最后在给测试类增加如下注释:
Java代码
@RunWith(Parameterized.class) 

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号