`
txf2004
  • 浏览: 6884982 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

junit 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 模式 的一个实例。<wbr></wbr>

分享到:
评论

相关推荐

    junit testsuite 编写实例

    初次写testsuite会遇到“NO runnable methods”,添加@Test也没有解决问题,看了多个文档实例,终于解决了这个问题,愿意跟大家一起分享,添加了资源分2分,迫于我去下载资源跟我要分啊。java源代码。

    junit eclipse testcast Testsuite

    junit eclipse testcast Testsuite 源码 和文档

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

    NULL 博文链接:https://huihai.iteye.com/blog/1994270

    1-Junit-最大公约最小公倍.rar

    个人作品 1-Junit-最大公约最小公倍.rar

    Junit单元测试所需要的两个jar包

    1 Junit是什么 JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。 2 单元测试概念 ...必须使注解@Test修饰

    junit的jar包

    junit.framework.TestSuite.class junit.framework.package-info.class junit.runner.BaseTestRunner.class junit.runner.TestRunListener.class junit.runner.Version.class junit.runner.package-info.class junit...

    junit的使用

    利用AndroidTestRunner类来执行,将TestSuite添加到AndroidTestRunner中

    Compatibility Test Suite (CTS) Framework User Manual

    Compatibility Test Suite (CTS) Framework User Manual cts junit 兼容性测度 android cts linux mobile

    Android-JUnit解析

    这也就JUnit中所谓的TestSuite。 2. 定义测试代码。这也就是JUnit中所谓的TestCase,根据源代码的测试需要定义每个TestCase,并将TestCase添加到相应的TestSuite方便管理。 3. 定义测试环境。在TestCase测试前会先...

    GMS TestSuite Userguide 4.03

    Google 移动服务(GMS)是一家集了 Google 的Android应用程序框架提供的应用和服务。GMS的测试套件(GTS)是一个自动化...作为JUnit测试和封装成一个Android apk文件到运行在实际设备上的目标是用Java编写的测试案例。

    junit-toolbox:使用JUnit 4编写自动化测试的有用类

    使用多个工作线程同时执行所有@Test方法以及使用不同参数分配对@Theory方法的调用。 替代JUnit运行器Parameterized ,该JUnit运行器对每个参数集同时执行测试。 替代JUnitRunners Suite和Categories ,它允许您...

    junit-report-merger:将多个JUnit XML报表合并为一个

    通过从所有XML报告中收集所有&lt;testsuite&gt;元素并将它们放在一起, junit-report-merger可以创建JUnit XML格式的新测试结果报告。命令行界面程序包提供了一个jrm二进制文件,您可以使用该二进制文件将多个xml报告合并...

    javajunit源码-junit3ToJunit4:Shell代码将Java源从JUnit3迁移到JUnit4

    java junit源码将JUnit3代码转换为JUnit4 脚本不是完美的,但是在处理最常见的问题上还有很长的路要走。...junit.framework.TestSuite.addTestSuite(clazz); 对于这些,您需要使用@RunWith(Suite.class) 。

    tap-junit:愚蠢的,愚蠢的小型XML输出,用于Taptape测试以将其转换为junit

    与和其他基于抽头的测试配合使用,只需将其通过抽头连接参量-c, --classname -- -c, --classname您要应用于testsuite元素的名称(如果未设置,则不会为输出testsuite给出名称) -o, --output -- -o, --output指定要...

    使用JUnit对规则进行单元测试

    火龙果软件工程技术中心 本文内容包括:引言编写Mock类将测试数据保存到配置文件中编写SettersMap类编写可复用的TestCase类用TestSuite组织测试用例总结下载参考资料“规则”(Rule)在程序中有广泛的应用,本文将...

    lyo.testsuite:Lyo 项目存储库 (lyo.testsuite)

    OSLC 测试套件是一组 JUnit 测试,可通过 Eclipse Lyo 项目使用。 它旨在针对 OSLC 服务提供商(在特定领域,例如 CM、QM 和 RM)进行测试,以了解其对 OSLC 核心规范和相应领域规范的实现。 OSLC 测试套件的角色...

    jtestsuiteplugin.eclipse-plugin:用于扩展 JUnit 测试的注释

    public class TestSuiteDefinition { @TestSuite(packageName="tests", className="IntenTestSuite", categories={"Integration", "kategorie1"}) public void doIntegrationTests(){ } @TestSuite(packageName=...

    parallel-junit:用于并行运行 JUnit 测试的 Ant 任务

    并行 JUnit - 来自 LMAX Exchange 用于并行运行 JUnit 测试的 Ant 任务维护者原作者文档该文档可以在主上找到。

    扩展JUnit4以促进测试驱动开发

    一次运行完所有的测试用例要花费很长的时间,采用TestSuite来组织测试用例的方式缺乏灵活性,通常它的组织结构大体和JavaPackage/Class的组织结构类似,不能和当前实现的业务需求完全相关。本文将通过扩展JUnit4来...

    go-junit::ant:用于提取JUnit XML报表的Go库

    去JUnit :ant: 转到库以获取JUnit XML报表 正在安装 您可以通过运行以下命令来获取该库 go get -u github.com/joshdk/go-junit ...testsuite name="JUnitXmlReporter" errors="0" tests="0" failures="0" ti

Global site tag (gtag.js) - Google Analytics