GetOpts для Groovy?

Во-первых, я выведу этот вопрос: Почему Вашим членам парламента, не занимающим официального поста нужно изолированное тестирование? Они то, что комплекс, обеспечивая такие сложные поведения для требования тестирования кроме общедоступной поверхности? Это - поблочное тестирование, не тестирование 'строки кода'. Не потейте маленький материал.

, Если они являются настолько большими, достаточно большими, что эти члены парламента, не занимающие официального поста - каждый, 'единица', большая в сложности - рассматривает рефакторинг таких членов парламента, не занимающих официального поста из этого класса.

, Если рефакторинг является несоответствующим или неосуществимым, можно ли использовать стратегическую модель для замены доступа к этим функциям члена парламента, не занимающего официального поста / членские классы когда под модульным тестом? Под модульным тестом стратегия обеспечила бы добавленную проверку, но в сборках конечных версий это будет простая передача.

8
задан 7 August 2009 в 17:10
поделиться

3 ответа

Вы также можете просто использовать Groovy CliBuilder (который внутренне использует Apache Commons Cli).

Хороший пример того, как это работает, вы найдете здесь => http: // www .reverttoconsole.com / blog / codenippets / groovy-clibuilder-in-practice /

def cli = new CliBuilder()
cli.with {
     usage: 'Self'
     h longOpt:'help', 'usage information'
     i longOpt:'input', 'input file', args:1
     o longOpt:'output', 'output file',args:1
     a longOpt:'action', 'action to invoke',args:1
     d longOpt:'directory','process all files of directory', args:1
}
def opt = cli.parse(args)
def action
if( args.length == 0) {
    cli.usage()
    return
}
if( opt.h ) {
    cli.usage()
    return
}
if( opt.i ) {
input = opt.i
}
...
15
ответ дан 5 December 2019 в 08:54
поделиться

Одно из основных достоинств Groovy - это совместимость с Java. Поэтому при поиске библиотек для использования в Groovy я первым делом ищу существующие библиотеки Java.

Args4j - краткая и элегантная библиотека для анализа параметров командной строки и , она отлично работает с классами Groovy. Я переписал части учебника для работы с Groovy.

Рассмотрим следующий класс Groovy:

import org.kohsuke.args4j.Option;

class Business {

        @Option(name="-name",usage="Sets a name")
        String name

        public void run() {

                println("Business-Logic")
                println("-name: " + name)
        }
}

Скомпилируйте его с помощью:

groovyc -classpath .:args4j-2.0.12/args4j-2.0.12.jar Business.groovy

и запустите с помощью

java -cp .:args4j-2.0.12/args4j-2.0.12.jar:/usr/share/java/groovy/embeddable/groovy-all-1.6.4.jar -Dmainclass=Business org.kohsuke.args4j.Starter -name sample

Чтобы получить результат

Business-Logic
-name: sample
3
ответ дан 5 December 2019 в 08:54
поделиться

Apache Commons CLI - еще одна библиотека Java, которую можно использовать в Groovy

0
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: