Lyn*_*lds 42 java junit annotations
我有以下代码:
@BeforeClass
public static void setUpOnce() throws InterruptedException {
fail("LOL");
}
Run Code Online (Sandbox Code Playgroud)
以及@Before,@ After,@ Test或@AfterClass方法的各种其他方法.
启动时测试不会失败,因为它似乎应该.有谁可以帮助我吗?
我有JUnit 4.5
该方法在立即调用setUp()时失败,该注释被注释为@before.类def是:
public class myTests extends TestCase {
Run Code Online (Sandbox Code Playgroud)
use*_*421 64
不要扩展TestCase并同时使用注释!
如果您需要创建带注释的测试套件,请使用RunWith注释,如:
@RunWith(Suite.class)
@Suite.SuiteClasses({ MyTests.class, OtherTest.class })
public class AllTests {
// empty
}
public class MyTests { // no extends here
@BeforeClass
public static void setUpOnce() throws InterruptedException {
...
@Test
...
Run Code Online (Sandbox Code Playgroud)
(按惯例:带有大写字母的类名)
Vla*_*mir 16
该方法必须是静态的,不能直接调用失败(否则不会执行其他方法).
以下类显示了所有标准JUnit 4方法类型:
public class Sample {
@BeforeClass
public static void beforeClass() {
System.out.println("@BeforeClass");
}
@Before
public void before() {
System.out.println("@Before");
}
@Test
public void test() {
System.out.println("@Test");
}
@After
public void after() {
System.out.println("@After");
}
@AfterClass
public static void afterClass() {
System.out.println("@AfterClass");
}
}
Run Code Online (Sandbox Code Playgroud)
和输出(毫不奇怪):
@BeforeClass
@Before
@Test
@After
@AfterClass
Run Code Online (Sandbox Code Playgroud)
小智 13
确保从正确的包中导入了 @Test。
请注意,这是一个解决方案:如果您的@Before、@Atter 等根本没有被调用。