Модульный тест Picocli не удалось зарегистрировать подкоманды программноJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Модульный тест Picocli не удалось зарегистрировать подкоманды программно

Сообщение Anonymous »

В picocli мы можем регистрировать подкоманды декларативно и программно.
Это работает в обоих направлениях, но модульный тест в соответствии с документацией не прошел для программной версии.
Это модуль тест:

Код: Выделить всё

@Test
void testApp() {
App app = new App();
CommandLine commandLine = new CommandLine(app);
int code = commandLine.execute("sub1", "param1");
assertEquals(0, code);
}
вариант 1 декларативно ✅

Код: Выделить всё

@CommandLine.Command(name = "foo", subcommands = { App.Sub.class })
public class App {

public static void main( String[] args )
{
CommandLine commandLine = new CommandLine(new App());
System.exit(commandLine.execute(args));
}

@CommandLine.Command(name = "sub1", description = "sub1")
public static class Sub implements Runnable {

@CommandLine.Parameters
public String [] params;

@Override
public void run() {
System.out.println("Sub " + params[0]);
}
}
}
вариант 2 программно ❌

Код: Выделить всё

@CommandLine.Command(name = "foo")
public class App {

public static void main( String[] args )
{
CommandLine commandLine = new CommandLine(new App())
.addSubcommand("sub1", new App.Sub());
System.exit(commandLine.execute(args));
}

@CommandLine.Command(name = "sub1", description = "sub1")
public static class Sub implements Runnable {

@CommandLine.Parameters
public String [] params;

@Override
public void run() {
System.out.println("Sub " + params[0]);
}
}
}
Это очень сбивает с толку, и я трачу несколько часов на то, чтобы обнаружить, что, возможно, в коде моего приложения чего-то не хватает.....
Я предполагаю, что мне нужен программный способ, так как же должен выглядеть модульный тест для этого варианта?
С уважением
Доминик

Подробнее здесь: https://stackoverflow.com/questions/787 ... mmatically
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»