Как протестировать интерактивное Java-приложение с помощью огурца и арубы
У меня есть этот сценарий Cucumber/Aruba:
Scenario: Simple echo
Given I run `java -cp /bin Echo` interactively
When I type "something\n"
Then the output should contain "something"
Чтобы протестировать эту простую программу Java:
import java.util.*;
class Echo {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
System.out.println(stdin.next());
}
}
Когда я запускаю тест, он терпит неудачу, и я получаю следующую ошибку:
Then the output should contain "something"
expected "" to include "something" (RSpec::Expectations::ExpectationNotMetError)
features/cli.feature:15:in `Then the output should contain "something"'
Когда я пробую тот же тест с этой рубиновой программой:
puts gets
все зелено...
Я делаю что-то не так здесь?
Нужно ли использовать другой метод для чтения со стандартного ввода? System.in используется только для клавиатуры?