Правильное написание юнит теста
У меня есть консольное приложение, которое в результате компиляции выводит в консоль определенную строку. Для этого приложения я хочу создать несколько юнит-тестов, но столкнулся с проблемой. Как правильно написать юнит-тест, чтобы проверялось, что именно выводит метод Main() в консоль. Вот пример кода
public static void Main()
{
Random random = new Random();
while (true)
{
Point ballsNextPosition = new Point(-1, -1);
int player, n;
int[,] map = new int[100, 100];
player = int.Parse(Console.ReadLine());
n = int.Parse(Console.ReadLine());
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
{
map[i, j] = int.Parse(Console.ReadLine());
}
}
ballsNextPosition = GetNextTurnIfVerticalOpenFour(ballsNextPosition, map, n, player);
for (int j = 1; j <= n; j++)
{
int comboPointCount = 0;
for (int i = 1; i <= n; i++)
{
if (comboPointCount == 4 && i < 15 && map[i, j] == 0)
{
ballsNextPosition.X = i;
ballsNextPosition.Y = j;
}
if (map[i, j] == player)
comboPointCount++;
else
comboPointCount = 0;
}
}
if (ballsNextPosition.X == -1 || ballsNextPosition.Y == -1)
{
do
{
ballsNextPosition.X = random.Next(4, 11);
ballsNextPosition.Y = random.Next(4, 11);
} while (map[ballsNextPosition.X, ballsNextPosition.Y] != 0);
}
Console.WriteLine("{0}:{1}", ballsNextPosition.X, ballsNextPosition.Y);
}
}
}
Для создания тестов использую nUnit