在哪里为不同的测试类放置常用的setUp-code?

时间:2011-03-18 15:59:40

标签: java junit

我有几个不同的测试类,要求在运行这些测试之前创建某些对象。现在我想知道是否应该将对象初始化代码放入单独的辅助类或超类中。

这样做肯定会减少我的测试类中重复代码的数量,但也会降低它们的可读性。

是否有指导或模式如何处理单元测试的常见setUp-code?

4 个答案:

答案 0 :(得分:6)

处理测试代码时的模式和实践与您正在测试的代码没有什么不同。您的测试代码中应该存在相同的OO原则和实践,但需要注意一点。如果你采取的方法使得单元测试很难找到失败点......你做错了。

答案 1 :(得分:1)

我不完全同意将共同的东西(在你的情况下对象初始化)放在共享/基类中会对你的代码的可读性产生影响。

事实上Refactoring的完整基础是关于如何以提高可读性的方式组织代码!

希望有所帮助。

答案 2 :(得分:0)

是的。

确切地说是setUp()和Teardown()函数的原因。您应该使用setUp()函数准备测试,并在拆解后的测试后执行作业。如果在同一个对象上有多个Test,则应考虑使用setUp()来启动此对象的Testsuperclass。

检查How can I run setUp() and tearDown() code once for all of my tests?

答案 3 :(得分:0)

我认为这有两点要遵循:

  • 重复代码和可读性之间的权衡。
  • 每个单元测试用例应该是独立的。