функции junit4 - PullRequest
       6

функции junit4

0 голосов
/ 03 марта 2010

как создать универсальные функции, которые можно вызывать из каждого теста Java? В моей функции стартаппли у меня есть:

public class startappli{

public void testMain (String[] args) 
 {

  String[] logInfos = new String[3];
  logInfos[0] = (String) args[0];
  logInfos[1] = (String) args[1];
 }
  @BeforeClass
    public static void setupOnce() {
        final Thread thread = new Thread() {
            public void run() {

             entrypointtoGUI.main(new String[]{"arg0 ", "arg1"});

            }
        };
        try {
            thread.start();
        } catch (Exception ex) {

        }
    }

}

в toto.java, я вызываю функцию следующим образом: startappli.testmain (loginfo) это не работает помощь?


моя функция: Runner.java содержит: открытый класс RunAppli {

@ BeforeClass public static void setupOnce () { конечная тема потока = новая тема () { public void run () {

            Main.main(new String[]{"-rtebase ", "C:\\bin"});

        }
    };
    try {
        thread.start();
    } catch (Exception ex) {

    }
}

@ Test public void test () {

    URL path = this.getClass().getResource("../Tester/map.xml");


    System.out.println("Cover: " + cmapURL);




    }

}

}
и из моего теста java TestDemo.java я вызываю StartAppli, чтобы запустить графический интерфейс приложения: RunAppli .setupOnce (); и я получаю путь к XML-файлу: RunAppli .path мы должны использовать @Test в функциях? Любое предложение? спасибо

Ответы [ 2 ]

0 голосов
/ 03 марта 2010

Вы делаете несколько вещей неправильно (фактически - все)

  1. Соглашения об именах Java говорят, что имена классов должны быть прописными

  2. Вы вызываете testmain() и main(), пока метод находится в camelCased - testMain().

  3. Вы не должны запускать метод main в новом потоке с помощью JUnit. Бегун JUnit заботится о создании экземпляров.

  4. Ваш тестовый класс должен выполнять тесты - т. Е. Он должен иметь метод, помеченный @Test

Я бы предложил прочитать руководство JUnit перед началом работы.

0 голосов
/ 03 марта 2010

Полагаю, ваша проблема в том, что startappli.setupOnce() не выполняется.

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

Решением может быть добавление метода @Test в этот класс. Или, если вы хотите, чтобы он вызывался перед каждым тестовым методом Java, вы должны вызывать его явно из методов @Before в каждом из ваших тестовых классов (или из методов @BeforeClass, если вы хотите, чтобы он запускался только один раз для каждого из них. тестовый класс).

Примечание: startappli не является хорошим именем для класса Java, так как существует соглашение, что имена классов должны быть верблюжьими, например. StartAppli.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...