我了解有@Before
和@BeforeClass
,它们用于定义@Test
的固定装置。但是,如果我需要为每个@Test
设置不同的灯具,我该怎么用?
@Test
? @Test
?我在这里要求最好的做法,因为我认为这两种解决方案都不干净。使用第一个解决方案,我将测试初始化代码。在第二个解决方案中,我将打破“每个类别的一个测试类”模式。
答案 0 :(得分:14)
提示:
答案 1 :(得分:0)
我建议根据您需要的不同灯具创建一个单独的类。如果你有两个不同的灯具,你需要创建两个不同的类(给它们一个方便的名称)。但我会第二次想到这一点,特别是关于灯具的差异以及为什么会有所不同。可能是你正在进行一种集成测试而不是单元测试?
答案 2 :(得分:0)
如果你肯定你的灯具是单一测试所独有的,那么它属于@Test
方法。这不是典型的。可能是它的某些部分是唯一的,或者你没有正确地参数化/提取它,但通常你会在测试之间共享很多相同的数据。
最终夹具是测试的一部分。放置夹具@Before
被采用为xUnit模式,因为测试总是:
和步骤1(@Before
)和4(@After
)在相关测试中重复使用(至少部分)。由于xUnit非常重视测试独立性,因此它提供了fixture方法来保证它们始终运行并正确地测试创建/销毁的数据。