首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JUnit工具类包

JUnit工具类包
EN

Stack Overflow用户
提问于 2011-03-30 23:09:57
回答 2查看 204关注 0票数 2

当我最近在我们的代码中添加更多的单元测试时,我被一个简单的问题卡住了。

我需要编写一些样板代码来简化测试类的编写。例如,在没有配置Resin服务器的情况下,使用JNDI注入连接到数据库。

我的问题是:我可以把只与测试相关的样板代码放在哪里?当然,它需要在我的test目录中,但是在我的包树中创建一个包,称之为"tool“是不是一种好的做法,因为这个包在项目源代码的包树中没有对应的包?为什么或者为什么不?

编辑:

让我们举个例子:我需要创建一个类来将数据库连接注入到我的测试类中。让我们称它为JNDIDatabaseInjector。这个类显然只用于测试目的,因为生产中使用的数据库连接是在应用服务器配置中定义的。我最好将我的JNDIDatabaseInjector类放在哪个包中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-31 00:20:39

这是我推荐给基于maven的项目的结构:

代码语言:javascript
复制
.
|-- src/
|   |-- main/
|   |   `-- java/
|   |       `-- com/
|   |           `-- example/
|   |               |-- bar/
|   |               |   `-- Bar.java
|   |               `-- foo/
|   |                   `-- Foo.java
|   `-- test/
|       |-- java/
|       |   `-- com/
|       |       `-- example/
|       |           |-- bar/
|       |           |   `-- BarTest.java
|       |           |-- foo/
|       |           |   `-- FooTest.java
|       |           |-- util/
|       |           |   `-- Util1.java
|       |           |-- AbstractTest.java
|       |           `-- Util2.java
|       `-- resources/
|           `-- com/
|               `-- example/
|                   |-- bar/
|                   |   `-- BarTest-context.xml
|                   `-- foo/
|                       `-- FooTest-context.xml
`-- pom.xml

正如您所看到的,我将Util1.java放在util子目录中,但我认为第一个公共父包(本例中为com.example)是更好的选择。我还建议您创建基础抽象AbstractTest类,以及共享通用测试样板的实用程序。

还要注意我放置测试资源的位置(本例中为Spring上下文配置)。这样您就可以访问一些测试数据(XML、SQL等)。只需发出以下命令即可轻松实现:

代码语言:javascript
复制
getClass().getResource("someFile.txt")

如果你在com.example.foo.FooTest中,上面的语句将自动从src/test/resources/com/example/foo/someFile.txt加载文件。

此目录布局可防止包之间的兄弟依赖(仅限子->父或父->子)。不知道为什么,但感觉好多了。当您想要在maven工件之间共享测试实用程序时,真正的问题出现了--这是maven的约定重于配置方法的最大缺陷之一。

票数 2
EN

Stack Overflow用户

发布于 2011-03-30 23:31:09

我将我所有的for-release包放在一个src Source文件夹中(在Eclipse中)。所有的junit都放在test-src Source文件夹中。这使得分离测试代码并只发布要发布的包变得很简单。

因此,它可能看起来像这样:

代码语言:javascript
复制
MyProject
- src
  + com.mycompany.tool
- test-src
  - com.mycompany.tool
    TestBed.java

在进行设置时,您可能需要查看mockito以创建样板。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5488205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档