Nic*_*ner 40 java junit unit-testing
我有一些常见的设置代码,我已经考虑到标记的方法@Before.但是,并非所有这些代码都必须针对每个测试运行.有没有办法对其进行标记,以便该@Before方法仅在某些测试之前运行?
Kir*_*ein 36
只需将不需要设置代码的测试移出到单独的测试类中.如果你有一些常见的测试常用的代码,那就把它移到一个帮助类中.
Roh*_*ngh 18
完全同意将相关代码移动到内部类的观点。所以在这里我做了什么。
这是代码:
class Testing {
@Test
public void testextmethod1() {
System.out.println("test ext method 1");
}
@Nested
class TestNest{
@BeforeEach
public void init() {
System.out.println("Init");
}
@Test
public void testmethod1() {
System.out.println("This is method 1");
}
@Test
public void testmethod2() {
System.out.println("This is method 2");
}
@Test
public void testmethod3() {
System.out.println("This is method 3");
}
}
@Test
public void testextmethod2() {
System.out.println("test ext method 2");
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出
test ext method 1
test ext method 2
Init
This is method 1
Init
This is method 2
Init
This is method 3
Run Code Online (Sandbox Code Playgroud)
注意:我不确定这是否在 Junit4 中受支持。我在 JUnit5 中这样做
也可以通过JUnit 的Assume实现。然后您可以检查要处理的方法名称@Before。
public class MyTest {
@Rule
public TestName testName = new TestName();
@Before
public void setUp() {
assumeTrue(testName.getMethodName().equals("myMethodName"));
// setup follows
}
}
Run Code Online (Sandbox Code Playgroud)
查看该主题以获取有关 的更多见解@Rule。
| 归档时间: |
|
| 查看次数: |
33666 次 |
| 最近记录: |