Junit - Аргумент командной строки - PullRequest
0 голосов
/ 10 октября 2011

Я только начал изучать JUnit. У меня есть следующий код:

public class MyClass {
  private void verify(args) {...}
  private void process(clientoptions) {...}

  public static void main(String[] args) {
    verify(args);
    //get client and do something
    .....
    // some more code here....
    ........
    // and then 
    process(clientoptions);
  }
}

Как вы пишете тест в Junit, а затем отправляете различные аргументы командной строки.

Спасибо

1 Ответ

3 голосов
/ 10 октября 2011

Simple!

public class MyClassTest {

    @Test
    public void shouldVerifyParameters() {
        MyClass.main(new String[]{"param1", "param2"});
    }

}

Однако для простоты тестирования рассмотрите рефакторинг MyClass в MyClassMain и MyClass, где первый только анализирует и проверяет аргументы командной строки и вызывает второй класс с clientoptions.

Таким образом, вы не нарушаете Принцип единой ответственности , и вы можете использовать бизнес-логику вне main, например, в сервлете или вмобильный.Также ... тестирование проще.

...