在几个grails测试类中使用可重复使用的测试方法的位置

时间:2010-07-14 14:30:34

标签: testing grails junit conventions

我经常需要为不同的测试用例设置相同的测试结构。因此,我创建了一个TestService类,它有几个公共方法用于测试类。

我想这不是放置它们的最佳位置,因为虽然在生产中不需要,但也会部署TestService。

你会把那些常用的测试方法放在哪里?对此有“最佳实践”吗?

3 个答案:

答案 0 :(得分:4)

我这样做的方式类似于上面的答案。如果我有一个MyDomain类,我将一个MyDomainTestHelper类放在一个测试包中。帮助程序上有静态方法,可以返回有问题的域对象。所以我可能有一个

static createTestMyDomain() {...}

创建一个具有合理默认值和

的实例
static createTestMyDomain(String something)

所以我可以指定一些东西等等。

你不应该像你提到的那样把它们放在“服务”中。但是任何你可以干的方式都是一种好方法。

答案 1 :(得分:1)

为什么不把它放在测试类旁边?通常的方法是将所有与测试相关的代码放入与源目录分开的目录中(例如“test”)。即不仅是测试用例本身,还有支持类,如实用程序方法,模拟实现等。

测试用例应该与它们测试的类放在同一个包中(但是在不同的物理目录中,如上所述)。多个测试用例使用的测试实用程序类应放入一些通用的实用程序包中。

答案 2 :(得分:1)

在编写测试时,我倾向于尽可能地遵循DRY原则。这主要表现在两个方面:

  1. 我通常会实现一个TestData类,它保存我在静态属性中输入的所有数据,以便更容易跟踪我给测试的输入,并确保当我打算提供同样的东西时,我从不给出不同的意见。它驻留在测试项目中,或者驻留在仅由测试项目引用的类库中。

  2. 如果我发现在许多测试中我需要相同的设置或拆解例程,我经常使用继承 - 创建一个测试夹具可以继承的基类,所有常见操作都在这里。

  3. 脚注:我几乎完成了C#中的所有开发工作,但我相信这些实践可以在任何使用测试框架的语言中应用。

相关问题