Я хочу запустить времена приложения 2 GUI от теста Java. Как мы должны использовать @annotation
в этом случае?
public class Toto {
@BeforeClass
public static void setupOnce() {
final Thread thread = new Thread() {
public void run() {
//launch appli
}
};
try {
thread.start();
} catch (Exception ex) { }
}
}
public class Test extends toto {
@Test
public void test() {
setuptonce();
closeAppli();
}
@test
public void test2()
{
setuptonce();
}
}
Запустить его второй раз, какую аннотацию я должен использовать? @afterclass
?
Метод с пометкой @BeforeClass
означает, что он запускается один раз перед запуском любого из методов тестирования в тестовом классе . Метод с пометкой @Before
запускается один раз перед каждым тестовым методом в классе. Их эквивалентами являются @AfterClass
и @After
.
Вероятно, вы стремитесь к чему-то вроде следующего.
@BeforeClass
public static void setUpClass() {
// Initialize stuff once for ALL tests (run once)
}
@Before
public void setUp() {
// Initialize stuff before every test (this is run twice in this example)
}
@Test
public void test1() { /* Do assertions etc. */ }
@Test
public void test2() { /* Do assertions etc. */ }
@AfterClass
public static void tearDownClass() {
// Do something after ALL tests have been run (run once)
}
@After
public void tearDown() {
// Do something after each test (run twice in this example)
}
Вам не нужно явно вызывать метод @BeforeClass
в ваших тестовых методах, JUnit сделает это за вас.
Аннотация @BeforeClass используется для однократного запуска чего-либо перед фактическим запуском теста.
Итак, в зависимости от того, что вы хотите получить (и почему), вы можете просто обернуть код запуска в цикл, переместить код запуска в другой метод и вызвать его из другого места или написать отдельный тестовый пример.