2.6.1 Managing resources with a fixture
有时,一些tests是需要外部资源的,而这些资源的配置却很麻烦.这方面很典型的例子就是数据库的连接.而有时为了一个测试,我们得需要很复杂的data stuctures或一长串的随机输入.
要是把这些很典型的setup代码也写进tests里的话,那可就显得有些傻了.毕竟我们要测试的不是搭建资源的能力--我们仅仅是需要一个稳定的测试环境.这里的测试环境set在JUnit里称为"test fixture".
DEFINITION: ;fixture--The set of common resources or data that you need to run one or more tests.
JUnit framework可以通过TestCase的setUp和tearDown方法来自动地创建和销毁.在运行每一个tests前,TestCase会自动调用setUp方法,而在每一个test完成之后TestCase也会自动调用tearDown.写测试代码时,我们之所以将很多相关的test method写入the same TestCase里的重要的原因是想share the fixture code.
在实际中,现在many developers现在用mock objects或stubs来模拟数据库连接和其它更为复杂的资源的配置.
数据库连接问题的例子就是一个很好的例子来说明我们为什么需要a fixture.若一个TestCase同时又包含了很多个数据库测试的话,这些连接都是需要一个对数据库的全新连接,利用JUnit中的fixture我们就可以很轻易地为每一个test都创建一个全新的连接,而无需replicating code.我们也可以很轻松地利用fixture创建新的input files.doing this means you do not have to carry your test files with your tests, and you always have a known state before the test is executed.
我们也可以通过JUnit里Assert接口提供的一些utility methods来重用代码,下一节我们解释这个utility methods.
JUnit design goals
When it is easy to reuse a fixture between tests, you can write tests more quickly. Each time you reuse the fixture, you decrease the initial investment made when the fixture was created. The TestCase fixtures speak to JUnit’s third design goal:
The framework must lower the cost of writing tests by reusing code.
2.6.2 Creating unit test methods
分享到:
相关推荐
阅读指引: 第一部分:Junit精粹 第1章:带着你为一个简单的对象创建测试。在此过程中介绍了单元测试的好处,... 第7章:展示了Mock object方法,这是一种让你可以把代码从周围领域对象隔离出来的测试的方法。 ......
但我可以根据标题和描述提供的信息,说明“JUnit in Action 中文版”这本书可能包含的知识点。 1. JUnit介绍:JUnit 是一个在Java编程语言中开发者常用的单元测试框架。它主要用于编写和运行可重复的测试。JUnit在...
赠送jar包:junit-jupiter-api-5.8.0-M1.jar; 赠送原API文档:junit-jupiter-api-5.8.0-M1-javadoc.jar; 赠送源代码:junit-jupiter-api-5.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.8.0-...
赠送jar包:archunit-junit5-api-0.14.1.jar; 赠送原API文档:archunit-junit5-api-0.14.1-javadoc.jar; 赠送源代码:archunit-junit5-api-0.14.1-sources.jar; 赠送Maven依赖信息文件:archunit-junit5-api-...
赠送jar包:junit-jupiter-api-5.7.2.jar; 赠送原API文档:junit-jupiter-api-5.7.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.7.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.7.2.pom; ...
赠送jar包:junit-platform-launcher-1.8.0-M1.jar; 赠送原API文档:junit-platform-launcher-1.8.0-M1-javadoc.jar; 赠送源代码:junit-platform-launcher-1.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-...
赠送jar包:junit-jupiter-api-5.4.2.jar; 赠送原API文档:junit-jupiter-api-5.4.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.4.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.4.2.pom; ...
赠送jar包:junit-jupiter-api-5.8.2.jar; 赠送原API文档:junit-jupiter-api-5.8.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.8.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.8.2.pom; ...
赠送jar包:junit-jupiter-engine-5.8.2.jar; 赠送原API文档:junit-jupiter-engine-5.8.2-javadoc.jar; 赠送源代码:junit-jupiter-engine-5.8.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-engine-...
赠送jar包:powermock-module-junit4-2.0.9.jar; 赠送原API文档:powermock-module-junit4-2.0.9-javadoc.jar; 赠送源代码:powermock-module-junit4-2.0.9-sources.jar; 赠送Maven依赖信息文件:powermock-...
赠送jar包:junit-jupiter-engine-5.8.0-M1.jar; 赠送原API文档:junit-jupiter-engine-5.8.0-M1-javadoc.jar; 赠送源代码:junit-jupiter-engine-5.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-...
JUnit5相关的 JUnit Jupiter.jar依赖包,主要包含: junit-jupiter-5.5.1.jar,junit-jupiter-api-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-jupiter-api-5.4.2.jar,...
赠送jar包:junit-4.13.2.jar; 赠送原API文档:junit-4.13.2-javadoc.jar; 赠送源代码:junit-4.13.2-sources.jar; 赠送Maven依赖信息文件:junit-4.13.2.pom; 包含翻译后的API文档:junit-4.13.2-javadoc-API...
赠送jar包:junit-jupiter-params-5.8.0-M1.jar; 赠送原API文档:junit-jupiter-params-5.8.0-M1-javadoc.jar; 赠送源代码:junit-jupiter-params-5.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-...
赠送jar包:powermock-module-junit4-common-2.0.9.jar; 赠送原API文档:powermock-module-junit4-common-2.0.9-javadoc.jar; 赠送源代码:powermock-module-junit4-common-2.0.9-sources.jar; 赠送Maven依赖信息...
赠送jar包:junit-platform-engine-1.8.2.jar; 赠送原API文档:junit-platform-engine-1.8.2-javadoc.jar; 赠送源代码:junit-platform-engine-1.8.2-sources.jar; 赠送Maven依赖信息文件:junit-platform-engine...
赠送jar包:junit-jupiter-params-5.7.2.jar; 赠送原API文档:junit-jupiter-params-5.7.2-javadoc.jar; 赠送源代码:junit-jupiter-params-5.7.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-params-...
JUnit in Action is an example-driven, how-to book on unit-testing Java applications, including J2EE applications, using the JUnit framework and its extensions. This book is intended for readers who ...
junit-jupiter-api-5.7.0-M1.jar
赠送jar包:junit-jupiter-api-5.8.0-M1.jar; 赠送原API文档:junit-jupiter-api-5.8.0-M1-javadoc.jar; 赠送源代码:junit-jupiter-api-5.8.0-M1-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.8.0-...