как понять @Test & @BeforeClass? - PullRequest
2 голосов
/ 04 марта 2010

Я начинаю с JUnit и не понимаю аннотации @Test и @BeforeClass.
У меня есть следующий код:

public class Toto { 
@BeforeClass
    public static void setupOnce() {
        final Thread thread = new Thread() {
            public void run() {
                Main.main(new String[]{"-arg1", "arg2"});
            }
        };
        try {
            thread.start();
        } catch (Exception ex) {
        }
    }

Почему @BeforeClass? А что за setupOnce() и темы в этом случае?
Должны ли мы добавлять @Test перед каждым тестом Java?
Итак, если у меня есть 30 тестов Java, должен ли я иметь @Test public void test() в каждом файле Java?

Ответы [ 2 ]

16 голосов
/ 04 марта 2010

Аннотация @BeforeClass определяет метод, который должен выполняться перед любыми тестовыми примерами, содержащимися в этом модуле реализации. В этом особом случае этот тестовый класс содержит некоторую инициализацию потокового ресурса, который требуется выполнять в фоновом режиме во время тестов.

JUnit определяет четыре события жизненного цикла:

  • @ BeforeClass: перед выполнением любого другого теста из класса.
  • @ Before: выполняется непосредственно перед запуском ОДНОГО теста, он вызывается ровно один раз для любого аннотированного метода @Test.
  • @ Test: сам тест, в вашем приложении может быть несколько методов, аннотированных таким образом.
  • @ После: после выполнения теста, независимо от ошибки или сбоя. Будет несколько исполнений, по одному для любого аннотированного метода @Test.
  • @ AfterClass: после выполнения любого теста этого класса,

В моих приложениях я обычно выполняю дорогостоящие инициализации, используя аннотированный метод @BeforeClass, тогда как действительно дорогие даже выполняются только один раз для полного набора тестов в целом. Но это «событие» основано на некоторых взломах, которые ускоряют мои разработки.

0 голосов
/ 12 марта 2019

В нижеследующем URL вы поймете темы ниже -

  • Как определить тест в JUnit?

    • Аннотации, используемые в Junit
      1. @ Test
      2. @ До
      3. @ После
      4. @ BeforeClass
      5. @ AfterClass
      6. @ Игнорировать или @Ignore («Почему отключено»")
      7. @ Test (ожидается = Exception.class)

https://onlyfullstack.blogspot.com/2019/02/annotations-used-in-junit.html

...