Форум программистов, компьютерный форум, киберфорум
Java: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
SE

TextFromStandardInputStream не заменяет ввод - программа все равно ожидает ввода данных вручную

13.11.2016, 18:07. Показов 1427. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер

Первый раз разрабатываю тест, не понимаю почему стандартный ввод не заменяется TextFromStandardInputStream.
Среда: IntelliJ IDEA + Maven, использую (ну... пытаюсь... ) JUnit для тестов...
Скрин и архив с проектом прилагаю.

Заранее спасибо
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package tests;
 
import com.endava.training.Task2Palindrome;
 
import org.junit.Test;
import org.junit.Rule;
import org.junit.contrib.java.lang.system.SystemOutRule;
import org.junit.contrib.java.lang.system.TextFromStandardInputStream;
 
import static org.junit.Assert.*;
 
public class Task2PalindromeTest {
    @Rule
    public final TextFromStandardInputStream systemInMock = TextFromStandardInputStream.emptyStandardInputStream();
    @Rule
    public final SystemOutRule systemOutRule = new SystemOutRule().enableLog();
 
    @Test
    public void mainTest1() throws Exception {
        systemInMock.provideLines("abab");
        Task2Palindrome.main(new String[]{});
        assertEquals("It isn't a palindrome", systemOutRule.getLog().trim());
 
        systemInMock.provideLines("yes", "abba");
        systemOutRule.clearLog();
        Task2Palindrome.main(new String[]{});
        assertEquals("It's a palindrome", systemOutRule.getLog().trim());
    }
 
}
Миниатюры
TextFromStandardInputStream не заменяет ввод - программа все равно ожидает ввода данных вручную  
Вложения
Тип файла: 7z 24tasks.7z (30.6 Кб, 1 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2016, 18:07
Ответы с готовыми решениями:

Программа, которая ожидает ввод числа
Используя цикл do-while, напишите программу, которая ожидает ввод числа 7. После вода числа 7 программа выводит на экран сообщение и...

Скрипт ожидает ввода данных
Нужна помощь! Хочу допилить скрипт, который делает настройку таким образом, чтобы после его выполнения, не висело ожидание ввода. ...

Программа для ввода вектора, как генерацией, так и вручную
Программка должна как генерировать векторы, так и позволять вводить их в ручную. Изначально это была программа для матрицы) Пишет ошибку...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.11.2016, 13:56
Зачем вообще писать такие тесты?

Какой-то совсем неправильный подход.
0
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
16.11.2016, 15:27  [ТС]
xoraxax, потому что мне никто ничего не объяснял... Сказали только "напиши тесты к своим программам"... Ну и вот)))
В чем проблема я разобралась через 10 минут после создания этой темы))
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
16.11.2016, 17:07
Лучший ответ Сообщение было отмечено MayaNash как решение

Решение

было бы правильнее выделить какие-то модули и тестировать их отдельно. Допустим какая-нибудь функция isPalinidrome. Т.е. тестировать, на мой взгляд, нужно то, что может сломаться. И в общем не так важно, откуда в эту функцию приходят данные, важно, что она отдает правильный ответ. А у тебя получается один кусок, в котором и ввод данных, и валидация данных, и бизнес-логика, и вывод результата. В итоге сложно тестировать, сложно поддерживать, сложно вносить изменения. Как-то так.
1
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
16.11.2016, 17:08  [ТС]
xoraxax, поняла, спасибо за ответ!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.11.2016, 17:08
Помогаю со студенческими работами здесь

Ввод данных в CSpinEdit вручную
Нужно ввести данные в CSpinEdit с клавиатуры, но вылетает ошибка, что невозможно переконвертировать пустую строку. Так как же ввести с...

Запрет на ввод данных вручную в Edit
Как запретить ввод данных в Edit вручную? Нужно чтобы данные попадали в Edit только та ...

scanf не ожидает ввода
Привет всем, я в первый раз на этом форуме. Вопрос следующий: в программе учета бюджета глючит функция EnterPurchaseList (). почему то...

Програма не ожидает ввода пользователя
Доброго времени суток! Суть вопроса в следующем: пользователь должен ввести имя а потом суму заработаных на продаже денег за месяц и...

После ввода отрицательного числа все равно выдает ответ
Function Faktorial(x:integer):integer; Begin Var i,s:integer; s:=1; if x<0 then writeln('Аргумент должен быть положительным!'); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru