Реализация тестовых сценариев для Java похожа на topcoder / codecheff

1

Я хотел бы реализовать тестовый файл, который будет запускать определенный класс java, а затем предоставить вход для него и выводит из него результат.

Итак, здесь есть три вопроса:

1) Как запустить другой java-класс из junit? Нужно ли нам запускать командную строку? 2) После запуска класса java, как мы можем вносить в него вклад? Мы печатаем это на консоли? 3) Как читать выходные данные программы, читаем ли мы здесь консоль?

Я не написал много тестовых примеров, написал простые тестовые примеры, которые будут вызывать метод в любом классе java и утверждает это. Может ли кто-нибудь помочь мне в этом?

Примечание: это не работа в колледже/школе, и это не связано с работой компании......: p

Теги:
junit
input
output

1 ответ

2
Лучший ответ

1) Код проверки, написанный в другом классе из метода тестирования junit, включает либо создание экземпляра этого класса, а затем вызов его методов или вызов статических методов класса. Если вы хотите запустить основной метод этого класса (метод, который запускается автоматически при запуске вашей java-программы из командной строки), просто вызовите MyClass.main(someArgs), где someArgs - это поддельные аргументы командной строки, заданные как массив Строки.

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

3) Вы можете использовать System.setIn и System.setOut для перенаправления ввода и вывода на свой собственный InputStream и OutputStream. Затем вы можете отправить "пользовательский" вход прямо из вашего тестового метода и сделать утверждения на основе содержимого OutputStream.

  • 0
    Библиотека системных правил предоставляет хорошую поддержку для перенаправления ввода и вывода. stefanbirkner.github.io/system-rules/index.html
  • 0
    Спасибо, mikebolt, Стефан, я попробую эти два и дам тебе знать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню