我有多个单独的测试类,它们都使用相同的测试对象。目前我在每个类中都使用 @Before,这显然不是一个很好的解决方案。
当然,一种选择是从创建此对象的抽象类继承。正如此处所述,这也不是一个好主意。
另一种选择是外部资源,但正如名称所说,用于资源而不是测试对象。
我觉得我错过了一些东西,因为这必须是 JUnit 中的一项基本任务。
您可能正在寻找一个TestRule. 引用Javadoc:
A
TestRule是测试方法或一组测试方法的运行和报告方式的改变。ATestRule可能会添加额外的检查,导致测试无法通过,或者可能会执行必要的测试设置或清理,或者可能会观察测试执行情况以在其他地方报告。BeforeTestRules 可以完成以前使用、After、或 AfterClass注释的方法可以完成的所有操作BeforeClass,但它们更强大,并且更容易在项目和类之间共享。
然后它继续列出了几种类型,其中ExternalResource之一是;但也有其他人。
鉴于您谈论的事情比使用@Before方法更好,并且您希望在类之间共享,这听起来非常像您所描述的内容。