Чтобы ваш тест работал, вам нужно фальшивая зависимость от внешнего сервиса, которая в данном случае равна System.Console
. Метод, который вы хотите протестировать (или класс), должен иметь возможность иметь различные типы этой зависимости - так, чтобы поддельная тоже могла работать.
С Console.ReadLine
, что вам действительно нужно, это TextReader
. Ваш метод зацикливания может выглядеть так:
public void MyMethod(TextReader reader)
{
for (int i = 0; i < robot.noOfCommands; i++)
{
robot.readCommand(reader.ReadLine());
}
}
В реальном приложении вы будете называть его MyMethod(Console.In)
. В тесте вы можете подготовить поддельный ридер (например, чтение из файла ресурсов) с помощью предопределенных команд.