Unit-тест для void метода - C#
Формулировка задачи:
Возник вопрос, как написать юнит тест для void метода, не принимающего ничего.
using System;
using System.Linq;
namespace ConsoleApplication1
{
class SimpleCalculator
{
public void SumOfNumbers()
{
Console.WriteLine("Введите слагаемые через запятую!");
try
{
int[] arr =
Console.ReadLine()
.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select(i => int.Parse(i))
.ToArray<int>();
Console.WriteLine("Сумма слагаемых: {0}", arr.Sum());
Console.ReadLine();
}
catch (FormatException)
{
Console.WriteLine("Используйте только целые числа! \n" +
"Обязательно вводите их через запятую!");
Console.ReadLine();
}
}
}
}
Изначально были такие наброски
[Test]
public void SumOfSomeNumbers()
{
var calc = new SimpleCalculator();
Random rand = new Random();
int first = rand.Next(0, 100000);
int second = rand.Next(0, 100000);
int result = first + second;
Assert.AreEqual(result, calc.SumOfNumbers());Решение задачи: «Unit-тест для void метода»
textual
Листинг программы
SimpleCalculator sc = new SimpleCalculator();
int sum = sc.Summ(Console.ReadLine());
Console.WriteLine("Сумма слагаемых: {0}", sum);