Задать вопрос
@Melz

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

Всем привет!

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

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

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

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

Пилить 100500 интерфейсов? Интернет полон противоречий...
  • Вопрос задан
  • 156 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 1
impwx
@impwx
Разработчик
Это как раз та проблема, ради решения которой придумали Dependency Injection. Если вы жестко завязываетесь на статический класс Console, приходится мириться с его ограничениями, в частности - однопоточностью.

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

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

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

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