Моделирование вывода JUnit для заданного входа
public void MyTest {
@Rule
public final TextFromStandardInputStream systemInMock
= emptyStandardInputStream();
@Test
public void shouldTakeUserInput() {
systemInMock.provideLines("add 5", "another line");
InputOutput inputOutput = new InputOutput();
assertEquals("add 5", inputOutput.getInput());
}
}
Здесь я хочу проверить на входе добавить 5 мой вывод, если какой-то оператор, используя System.out.println()
утверждение в некотором методе. Можно ли смоделировать выходной оператор?
1 ответ
Решение
Вы можете использовать SystemOutRule
чтобы получить результат, записанный в System.out
и утверждаю против этого
public class MyTest {
@Rule
public final TextFromStandardInputStream systemInMock =
emptyStandardInputStream();
@Rule
public final SystemOutRule systemOutRule = new SystemOutRule().enableLog();
@Test
public void shouldTakeUserInput() {
systemInMock.provideLines("add 5", "another line");
MyCode myCode = new MyCode();
myCode.doSomething();
assertEquals("expected output", systemOutRule.getLog());
}
}