JUnit:@Before只针对一些测试方法?
我有一些常见的设置代码,我已经考虑了一个标有@Before
的方法。 但是,并非所有这些代码都必须针对每个测试运行。 有没有办法对它进行标记,以便@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 } }
查看主题以获取有关@Rule
更多见解。
不确定@Before,但我最近提出了一个策略,让@After块有选择地运行。 实施很直接。 我有一些标志设置为默认值作为测试类的一部分。 它们在@Before类中重置为默认值。 在类中我需要做一些特定于标志的事情,我在@After中设置这些标志并检查标志值以执行相应的作业。