Java 在哪里放置不同TestClass的公共设置代码?

Java 在哪里放置不同TestClass的公共设置代码?,java,junit,Java,Junit,我有几个不同的测试类,它们要求在运行这些测试之前创建某些对象。现在我想知道是否应该将对象初始化代码放入一个单独的helper类或超类中 这样做肯定会减少测试类中重复代码的数量,但也会降低它们的可读性 是否有一个指导方针或模式来处理单元测试的常见设置代码?处理测试代码时的模式和实践与您正在测试的代码没有什么不同。测试代码中应该存在相同的OO原则和实践,但有一点需要注意。如果您采取的方法使单元测试难以找到故障点……那么您是做错了。是的 这正是setUp()和Teardown()函数的原因。您应该使用

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

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


是否有一个指导方针或模式来处理单元测试的常见设置代码?

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

是的

这正是setUp()和Teardown()函数的原因。您应该使用setUp()函数准备测试,并在测试结束后在拆卸中执行作业。如果在同一个对象上有一个以上的测试,则应该考虑TestSub类,在其中使用SETUP()来初始化这个对象。
检查

我不太同意将公共内容(在您的例子中是对象初始化)放在共享/基类中会对代码的可读性产生影响

事实上,它的整个基础是如何以一种提高代码可读性的方式组织代码


希望这能有所帮助。

我认为有两点需要遵循:

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

我同意-您的单元测试用例与它们试图测试的代码一样重要。设计它们时要像创建生产代码时一样小心。他的问题是在类之间运行setUP()和tearDown(),而不是在每个类/测试中运行一次。@Nilesh-这就是为什么我建议选择一个超类的设置,该超类在多个测试中运行一次。您使用JUnit吗?