JUnit最佳实践:每个@Test的不同灯具

Jur*_*ass 6 junit fixtures

我知道有@Before@BeforeClass,用于定义固定装置@Test.但是,如果我需要不同的灯具,我应该怎么用@Test

  • 我应该定义夹具 @Test吗?
  • 我应该为每个人创建一个测试类@Test吗?

我在这里要求最好的做法,因为我认为这两种解决方案都不干净.使用第一个解决方案,我将测试初始化​​代码.在第二个解决方案中,我将打破"每个类的一个测试类"模式.

iwe*_*ein 14

提示:

  1. 忘记每个类模式的一个测试类,它没有什么优点.从每个使用角度切换到一个测试类.在一个视角中,您可能有多种情况:上边界,下边界等.为同一类中的人创建不同的@Tests.
  2. 请记住,JUnit将为每个@Test创建一个测试类的实例,因此每个测试都将得到一个独特的fixture(由相同的@Before方法设置).如果你需要一个不同的灯具,你需要一个不同的测试类,因为你的角度不同(见1.)
  3. 为特定测试调整夹具没有任何问题,但您应该尝试保持测试清洁,以便讲述故事.当测试失败时,这个故事应该特别清楚,因此每个案例都有不同的,名称很好的@Test(见1.)