我有一些常见的设置代码,我已将其分解为标记为@Before
的方法。但是,所有这些代码都不需要为每个单独的测试运行。有没有办法标记它,所以@Before
方法只在某些测试之前运行?JUnit:@Before仅适用于某些测试方法?
回答
只需将不需要安装代码的测试移出到单独的测试类中即可。如果你有一些其他的测试共同的代码,这将有助于保持,将其移入辅助类。
或使用TestNG。它使您能够更好地控制测试。
也可以通过JUnit的Assume来实现。然后你可以检查你想要处理的方法名称@Before
。
public class MyTest {
@Rule
public TestName testName = new TestName();
@Before
public void setUp() {
assumeTrue(testName.getMethodName().equals("myMethodName"));
// setup follows
}
}
检查topic中更多的内幕约@Rule
。
不要使用假设,它停止运行整个测试,而不仅仅是@Before方法。if(!testName.getMethodName()。equals(“myMethodName”)){return;}(原谅间距)会更好。 – jMcK 2015-09-02 15:51:14
我坦率地发现“if-test-name-equals”的概念没有意义,因为你可能直接在需要它们的测试中直接调用before和after函数,并且消除Before和After注释。 – aliteralmind 2015-09-24 15:30:31
不知道@Before,但我最近想出了@After块有选择地运行的策略。实施非常简单。我有一些标志设置为默认值作为测试类的一部分。它们在@Before类中重置为默认值。在课堂上,我需要做一些特定于国旗的事情,我在@After中设置这些标志&我检查标志值来完成各自的工作。
- 1. 用于同步方法的JUnit测试
- 2. 适用于junit测试方法的命名约定
- 3. 在JUnit测试的@Before方法之前执行代码
- 4. 动画:仅适用于某些元素
- 5. ModRewrite仅适用于某些选项
- 6. 的SimpleMappingExceptionResolver仅适用于某些例外
- 7. JUNIT - 测试方法
- 8. 增加仅适用于junit的方法范围建议与否?
- 9. RK4-方法和欧拉方法只适用于某些式
- 10. junit测试异常方法
- 11. Junit测试私有方法
- 12. JUnit测试:静态方法调用到测试方法
- 13. 仅适用于某些类型参数的方法的通用类
- 14. 仅适用于测试的模型
- 15. ScalaMock:Stub仅适用于第一次测试
- 16. JUnit:仅使用静态方法测试帮助程序类
- 17. 基于环境变量跳过/忽略基于环境变量的Before/Setup方法中的JUnit测试用例
- 18. 从一次测试中调用某个方法时的junit测试
- 19. 如何在运行某些JUnit测试时替换某个类?
- 20. 关于JUnit测试用例
- 21. 用junit测试流口水的方法
- 22. 使用JUnit的测试方法
- 23. 无效方法的Junit测试用例
- 24. Junit使用void方法测试
- 25. 仅适用于某些路线的角度通用渲染
- 26. 在tomcat上禁用会话cookie仅适用于某些网址
- 27. 如何在虚空方法应用于JUnit测试
- 28. Junit用于创建文件的void方法的测试案例
- 29. PowerMockito.whenNew()适用于Junit测试,但不能与TestNg测试一起使用
+1换句话说,不要使用@Before如果你不想使用@Before的行为:) – 2009-10-10 17:39:08
真正有用@Kirschstein :( - “首先做它” – 2018-02-21 10:46:27