@Test
void testRowX() {
// given
String sizeOfBoardString = "3\n2";
ByteArrayInputStream inputStream = new ByteArrayInputStream(sizeOfBoardString.getBytes());
System.setIn(new ByteArrayInputStream(sizeOfBoardString.getBytes()));
// when
OutputComputer outputComputer = new OutputComputer();
outputComputer.gameStart();
outputComputer.gameType();
InputSelector inputSelector = new InputSelector();
int boardSize = inputSelector.boardType();
StartGame startGame = new StartGame();
startGame.runGame(boardSize, boardSize);
String whoWin = "Won X";
// then
assertEquals("Wona X", whoWin);
}
У меня возникла проблема с тестами на Java. На данный момент я знаю, поставлю ли я String sizeOfBoardString = "3\n2"; Мне нужно ответить на 2 вопроса из программы, но есть еще запрос на ответ.
Подводя итог, я пытаюсь протестировать программу «тик-такто». Я спрашиваю размер доски, и она принимает значение. Но когда я спрашиваю, компьютер это или человек, мне отвечают, что это не имеет значения. Но, по моему мнению, из-за этого значения должно быть 2: String sizeOfBoardString = "3\n2";
Если я запускаю программу вручную, она работает нормально
public class StartGame {
public void runGame(int boardSize, int boardSize2) {
RealUser realUser = new RealUser();
Computer computer = new Computer();
OutputComputer outputComputer = new OutputComputer();
Board board = new Board(boardSize, boardSize);
outputComputer.computerOrHuman();
int compOrHum = board.computerOrHuman();
board.showFilledBoard();
}
И есть вызов ComputerOrHuman()
public class Board {
private char[][] values;
private int rows;
private int columns;
List winnersX = new ArrayList();
List winnersO = new ArrayList();
public Board(int rows, int columns) {
this.rows = rows;
this.columns = columns;
this.values = new char[rows][columns];
}
public int computerOrHuman() {
InputSelector inputSelector = new InputSelector();
int ifHuman = inputSelector.computerOrHuman();
return ifHuman;
}
}
И селектор ввода, содержащий Scanner.nextLine()
public class InputSelector {
Scanner scanner = new Scanner(System.in);
public int computerOrHuman() {
int computerOrHuman = Integer.parseInt(scanner.nextLine());
return computerOrHuman;
}
}
Что мне нужно сделать, чтобы код работал?
Вот результат кода:
Добро пожаловать в TicTacToe!
Выберите тип игры. Введите 3 или 10
Вы хотите играть с компьютером(1) или человеком(2)?
Строка не найдена
public class OutputComputer {
public void computerOrHuman() {
System.out.println("Do you want to play with computer(1) or human(2)?");
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... d-i-change
Тесты Java: работает только первый ответ. Что мне следует изменить? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1732022873
Anonymous
@Test
void testRowX() {
// given
String sizeOfBoardString = "3\n2";
ByteArrayInputStream inputStream = new ByteArrayInputStream(sizeOfBoardString.getBytes());
System.setIn(new ByteArrayInputStream(sizeOfBoardString.getBytes()));
// when
OutputComputer outputComputer = new OutputComputer();
outputComputer.gameStart();
outputComputer.gameType();
InputSelector inputSelector = new InputSelector();
int boardSize = inputSelector.boardType();
StartGame startGame = new StartGame();
startGame.runGame(boardSize, boardSize);
String whoWin = "Won X";
// then
assertEquals("Wona X", whoWin);
}
У меня возникла проблема с тестами на Java. На данный момент я знаю, поставлю ли я String sizeOfBoardString = "3\n2"; Мне нужно ответить на 2 вопроса из программы, но есть еще запрос на ответ.
Подводя итог, я пытаюсь протестировать программу «тик-такто». Я спрашиваю размер доски, и она принимает значение. Но когда я спрашиваю, компьютер это или человек, мне отвечают, что это не имеет значения. Но, по моему мнению, из-за этого значения должно быть 2: String sizeOfBoardString = "3\n2";
Если я запускаю программу вручную, она работает нормально
public class StartGame {
public void runGame(int boardSize, int boardSize2) {
RealUser realUser = new RealUser();
Computer computer = new Computer();
OutputComputer outputComputer = new OutputComputer();
Board board = new Board(boardSize, boardSize);
outputComputer.computerOrHuman();
int compOrHum = board.computerOrHuman();
board.showFilledBoard();
}
И есть вызов ComputerOrHuman()
public class Board {
private char[][] values;
private int rows;
private int columns;
List winnersX = new ArrayList();
List winnersO = new ArrayList();
public Board(int rows, int columns) {
this.rows = rows;
this.columns = columns;
this.values = new char[rows][columns];
}
public int computerOrHuman() {
InputSelector inputSelector = new InputSelector();
int ifHuman = inputSelector.computerOrHuman();
return ifHuman;
}
}
И селектор ввода, содержащий Scanner.nextLine()
public class InputSelector {
Scanner scanner = new Scanner(System.in);
public int computerOrHuman() {
int computerOrHuman = Integer.parseInt(scanner.nextLine());
return computerOrHuman;
}
}
Что мне нужно сделать, чтобы код работал?
Вот результат кода:
Добро пожаловать в TicTacToe!
Выберите тип игры. Введите 3 или 10
Вы хотите играть с компьютером(1) или человеком(2)?
Строка не найдена
public class OutputComputer {
public void computerOrHuman() {
System.out.println("Do you want to play with computer(1) or human(2)?");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79203300/java-tests-only-first-answer-working-what-should-i-change[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия