Я пытаюсь протестировать свое самое первое консольное приложение, и, пытаясь это сделать, я наткнулся на препятствие на пути неспособности протестировать любой негативный сценарий ios. Вот почему - я разделил все действия пользователя на отдельные методы, и эти действия пользователя продиктованы результатом оператора IF, который либо соответствует, либо не соответствует моим условиям.
Я могу смоделировать вход консоли для положительного состояния, которое затем выйдет из моего кода и завершит мой тест. Но (и, очевидно, так), когда я пытаюсь проверить любое ложное условие, оператор перезапускается, и мой тест завершается неудачно с «недостаточным объемом памяти». Я пытался выяснить, есть ли способ проверить мои негативные состояния?
public float UserInput2()
{
// Ask the user to type the second number.
Console.WriteLine("Type another number, and then press Enter");
bool Valid2 = false;
while (Valid2 == false)
{
string Input2 = Console.ReadLine();
Console.WriteLine(Input2);
if (!float.TryParse(Input2, out Number))
{
Console.WriteLine("Not an integer, please try again.");
}
else
{
Valid2 = true;
num2 = (float)Convert.ToDecimal(Input2);
}
}
return num2;
}
[Test]
public void UserInput2Test()
{
var calc = new CalculatorApp.Program();
var output = new StringWriter();
string expectedresult = (string.Format("Type another number, and then press Enter\r\n5\r\n", Environment.NewLine));
Console.SetOut(output);
var input = new StringReader("f5");
Console.SetIn(input);
var input2 = new StringReader("5");
Console.SetIn(input2);
calc.UserInput2();
//num1 = (float)Convert.ToDecimal(output);
Assert.That(output.ToString(), Is.EqualTo(expectedresult));
}