`

TestSuite的使用

阅读更多

TestSuite的使用

您定义自己的TestCase,并使用TestRunner来运行测试,事实上TestRunner并不直接运行 TestCase上的单元方法,而是透过TestSuite,TestSuite可以将数个TestCase在一起,而让每个TestCase保持简单。

来看看一个例子:
  • MathToolTest.java
package onlyfun.caterpillar.test;

import onlyfun.caterpillar.MathTool;
import junit.framework.TestCase;

public class MathToolTest extends TestCase {
    public MathToolTest(String testMethod) {
        super(testMethod);
    }

    public void testGcd() {
        assertEquals(5, MathTool.gcd(10, 5));
    }

    public static void main(String[] args) {
        junit.textui.TestRunner.run(MathToolTest.class);
    }
}

在这个例子中,您并没有看到任何的TestSuite,事实上,如果您没有提供任何的TestSuite,TestRunner会自己建立一个,然後这个 TestSuite会使用反射(reflection)自动找出testXXX()方法。

如果您要自行生成TestSuite,则在继承TestCase之後,提供静态的(static)的suite()方法,例如:
public static Test suite() {
     return new TestSuite(MathTool.class);
}

如果您没有提供任何的TestSuite,则TestRunner就会像上面这样自动为您建立一个,并找出testXXX()方法,您也可以如下面定义 suite()方法:
public static Test suite() {
     TestSuite suite = new TestSuite(MathTool.class);
     suite.addTest(new MathToolTest("testGcd"));
     return suite;
}
 
JUnit 并没有规定您一定要使用testXXX()这样的方式来命名您的测试方法,如果您要提供自己的方法(当然JUnit 鼓励您使用testXXX()这样的方法名称),则可以如上撰写,为了要能够使用建构函式提供测试方法名称,您的TestCase必须提供如下的建构函 式:
public MathToolTest(String testMethod) {
    super(testMethod);
}
 

如 果要加入更多的测试方法,使用addTest()就可以了,suite()方法传回一个TestSuite物件,它与 TestCase都实作了Test介面,TestRunner会调用TestSuite上的run()方法,然後TestSuite会将之委托给 TestCase上的run()方法,并执行每一个testXXX()方法。

除了组合TestCase之外,您还可以将数个TestSuite组合在一起,例如:
public static Test suite() {
    TestSuite suite= new TestSuite();
    suite.addTestSuite(TestCase1.class);
    suite.addTestSuite(TestCase2.class);
    return suite;
}
 
如此之来,您可以一次运行所有的测试,而不必个别的运行每一个测试案例,您可以写一个运行全部测试的主测试,而在使用TestRunner时呼叫 suite()方法,例如:
junit.textui.TestRunner.run(TestAll.suite());

TestCase与TestSuite都实作了Test介面,其运行方式为 Command 模式 的一个实例,而TestSuite可以组合数个TestSuite或TestCase,这是 Composite 模式 的一个实例。
分享到:
评论

相关推荐

    61850 Test Suite V3.rar

    在使用61850 Test Suite V3时,工程师首先需要熟悉61850标准的细节,理解各种服务和数据模型的工作原理。然后,他们将通过测试套件连接到目标设备,执行一系列预定义或自定义的测试用例。测试结果将帮助识别并修复...

    junit eclipse testcast Testsuite

    总结,理解并熟练使用JUnit和Eclipse Testcast Testsuite是提升开发质量的重要途径。无论是从源码中学习它们的设计理念,还是通过文档掌握使用技巧,都能使我们在测试工作中更加得心应手。通过不断的实践和学习,...

    skyeye-testsuite-1.2.5.tar.bz2

    skyeye-testsuite-1.2.5.tar.bz2

    LTP使用说明

    - **open_posix_testsuite**:POSIX兼容性测试。 - **misc**:其他杂项测试。 ##### 4.3 LTP 执行原理 LTP通过一系列预定义的脚本和测试用例,对Linux系统进行压力测试。这些测试用例被设计成可以模拟真实世界中的...

    软件测试工具e-test suite入门使用说明

    ### 软件测试工具e-test suite入门使用说明 #### 1. 概述 e-test suite是一款功能强大的软件测试工具,特别适用于Web应用程序的测试。该工具集成了多个组件,包括e-TESTER(用于录制和编辑测试脚本)、e-LOAD...

    TV Compatibility Test Suite

    TV Compatibility Test Suite (TV CTS) 是一个专为验证Google TV设备而设计的测试套件。它的主要目标是确保每一个Google TV设备都能支持所有由Google TV所支持的应用和功能。TV CTS由两部分组成:测试框架(test ...

    The NIST Statistical Test Suite: 序列随机性测试工具

    The NIST Statistical Test Suite ( Revised by Larry Bassham, March 2008), 用于测试序列的随机性. 从NIST上下载的源代码,稍微修改了一下,附带一个已经编译好的32位Exe程序。主要修改如下:1)增加了大量的帮助...

    EMVCo PICC Analogue Test Suite - Specifications - Rev F.pdf

    2. 测试工具软件描述:EMVCo PICC Analogue Test Suite使用MP Manager软件平台进行测试执行。MP Manager界面分为几个部分,包括主窗口、配置窗口、选择与执行窗口,分别用于测试的配置、选择测试用例以及运行测试和...

    Base 1394 Test Suite 2.3.pdf

    文件中提到的Base 1394 Test Suite 2.3是由1394 Trade Association(1394行业协会)赞助,并由其董事会接受发布的。1394行业协会是一个致力于推动IEEE 1394兼容产品市场的非营利性工业协会。该测试套件旨在定义用于...

    Phoronix Test Suite 6.8

    在使用Phoronix Test Suite 6.8时,用户通常会下载并安装名为`phoronix-test-suite`的压缩包文件。安装完成后,用户可以通过命令行界面运行各种测试,如`phoronix-test-suite benchmark <test-name>`来启动特定的...

    Android Camera Imaging Test Suite

    Android Camera Imaging Test Suite / CTS Verifier Document version: 1.9 Document date: 31st May, 2016 The ITS is a framework for running tests on the images produced by an Android camera.

    gcc-testsuite-4.3.2.tar.gz

    测试套件的使用方法通常是解压`gcc-testsuite-4.3.2.tar.gz`,然后配置、编译和运行测试。在GCC源代码目录下,可以使用`make check`命令来执行测试。这会运行所有的测试用例,并报告任何失败的情况。通过分析这些...

    mysql-testsuite_5.7.34-1ubuntu18.04_i386.deb

    mysql-testsuite_5.7.34-1ubuntu18.04_i386.deb

    测试套件TestSuite生成测试报告

    测试套件TestSuite生成测试报告,编写测试用例,生成测试报告,需要用到 HTMLTestRunner.py文件

    《网站测试解决方案》(Empirix e Test Suite 8.01 )英文[ISO]

    ### 知识点一:Empirix e-Test Suite 8.01 概述 #### 软件基本信息 - **中文名称**:网站测试解决方案 - **英文名称**:Empirix e-Test Suite 8.01 - **资源格式**:光盘镜像 - **版本**:英文 - **发行时间**:...

    phoronix-test-suite-4.8.6.tar.gz

    因此,"phoronix-test-suite-4.8.6.tar.gz"是一个经过gzip压缩的归档文件,用户需要先解压后才能使用。 3. **安装与使用** 在Linux环境下,用户可以通过以下步骤安装Phoronix Test Suite 4.8.6: - 解压缩文件:`...

    MIPI_D-PHY_Conformance_Test_Suite_(v1.00)

    MIPI D-PHY Conformance Test Suite (v1.00) 是一份针对MIPI D-PHY物理层符合性测试的专业文档,旨在确保设备遵循MIPI D-PHY规范,实现高效、可靠的接口通信。MIPI(Mobile Industry Processor Interface)联盟制定...

    CTS 全称Compatibility Test Suite兼容性测试工具

    CTS(Compatibility Test Suite)是Android系统中用于确保设备和操作系统版本之间兼容性的重要工具。它的主要目标是保证第三方应用程序能在不同的Android设备上正常运行,从而维护Android生态系统的统一性和稳定性。...

    2、junit学习之hamcrest、testSuite介绍及测试原则

    本文将深入探讨JUnit的学习,特别是结合Hamcrest和TestSuite的使用,以及阐述一些重要的测试原则。 首先,JUnit是Java编程语言的一个单元测试框架,它允许开发者编写可重复执行的测试用例,以验证代码功能的正确性...

    systemtap-testsuite

    systemtap script examples , cross compile from x86 to arm.

Global site tag (gtag.js) - Google Analytics