@Melz

Как нынче тестят Console?

Всем привет!

Все просто:
- консольная прога
- ввод/вывод текста с консоль. (без цвета и тд)

Нужно протестировать с NUnit пары ввод/вывод.

На данный момент все РАБОТАЕТ через
Console.SetOut и StringWriter

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

Пилить 100500 интерфейсов? Интернет полон противоречий...
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
impwx
@impwx
Разработчик
Это как раз та проблема, ради решения которой придумали Dependency Injection. Если вы жестко завязываетесь на статический класс Console, приходится мириться с его ограничениями, в частности - однопоточностью.

Самое грамотное решение, за которое будет не стыдно - действительно, использовать DI и интерфейс. Придется реализовать два класса на его основе - "боевой" ConsoleWrapper и тестовый ConsoleWrapperMock.

В качестве быстрого и грязного решения - если программа несложная и вы можете протестировать всё через входные параметры, можно в тесте запускать ее как внешний процесс (вызывать exe-шник) - тогда процессы будут независимы друг от друга и тесты можно будет гонять параллельно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы