抽象类TestCase
抽象类TestCase实现了接口Test,以下是接口Test的一个方法原型:
public abstract void run(TestResult result);
TestCase对这个方法的实现如下:
public void run(TestResult result) {
result.run(this);
}
对这个方法的调用又将主动权交给TestResult,由TestResult来执行对被测方法的调用,这样便于TestResult跟踪用例执行结果并记录下来,以便作最后的统计分析。
转到TestResult中这个方法的实现:
protected void run(final TestCase test) {
startTest(test);
Protectable p= new Protectable() {
public void protect() throws Throwable {
test.runBare();
}
};
runProtected(test, p);
endTest(test);
//这个方法和上面的startTest用于调用TestListener接口对象,实现监听机制。
}
在这个方法中调用了TestCase的runBare方法:
public void runBare() throws Throwable {
setUp();
try {
runTest();
}
finally {
tearDown();
}
}
可以看到先调用了setUp,之后不管是否产生了异常,都一律调用了tearDown,这两个方法在TestCase中空实现,我们的用例子类可以覆盖(overload)这两个方法,用于用例执行前的初始环境建立和用例执行后的环境清除。接下来我们关注TestCase的runTest方法,看它如何调用到我们的测试方法的。前面提到,TestCase维护了一个用例名称,这个用例名称在TestCase实例化时传入,用例名称就是测试方法名,知道了测试方法名,也就知道了测试方法原型,使用JAVA的反射机制实现了对测试方法的调用。注意这个测试方法正是TestCase子类需要实现的。
分享到:
相关推荐
Java平台的单元测试技术研究.pdf
Java单元测试方法与技术,包含代码示例。
这个资源中的接口主要是为了帮助学生或者开发者更好地理解和掌握Java单元测试的概念和技术。通过这些接口,你可以学习如何编写单元测试,如何使用断言方法来检查结果,以及如何组织和运行测试用例等。此外,这个资源...
Java 单元测试篇:使用 Clover 为 Java 代码的 JUnit 测试做覆盖率分析 Java 单元测试是软件测试的重要组成部分,对于 Java 开发者来说,单元测试是必不可少的。今天,我们将学习使用 Clover 框架来分析 Java 代码...
里面是 junit4.7/4.8/4.11.jar单元测试包,希望对各位有用。
书中介绍的技术、方法和工具能够使软件开发人员、QA技术员和IT管理员高效地协同完成软件的开发和测试自动化。 通过本书,您可以了解到包装在下一代J2EE、.NET和开源项目中的新API、协议和工具的详细清单。因为这些...
展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的...
Java平台的单元测试技术研究
java单元自测.pdf
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速...
后端研究-基于Java平台的单元测试技术研究.pdf
展示了高级技术:测试部分失败、工厂、依赖关系测试、远程调用、基于集群的测试服务器群等。 介绍了在Eclipse和IDE中安装TestNG插件。 包含了大量的代码示例。 无论您使用TestNG,JUnit或其他测试框架,本书提供的...
Java-Junit单元测试无法使用scanner输入和I-O流的解决方案.docx
元测试对程序员来说是非常重要的一门技术,但是在实际编程中却往往被程序员所忽视。微软的VS开发工具为我们提供了...它是从Java中著名的JUnit单元测试框架移植过来,这个可以从官网中得到答案,http://www.nunit.org/。
在java web应用中,通过mock技术可以模拟spring容器,从而进行单元测试,详细可以参见本文
junit单元测试 用java语言求解一元二次方程 ,并进行测试编写测试报告
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了...