Натолкнулся на какое-то интересное поведение - Assert
был пойман Catch
блок.Assert in Try..Catch block пойман
List<Decimal> consArray = new List<decimal>();
try
{
Decimal d;
Assert.IsTrue(Decimal.TryParse(item.Value, out d));
consArray.Add(d);
}
catch (Exception e)
{
Console.WriteLine(item.Value);
Console.WriteLine(e);
}
Утверждай бросает AssertFailedException
и его поймали catch
. Всегда считалось, что если Assert
сбой, тест не выполняется, а последовательное выполнение прерывается. Но в этом случае тест проходит. Если ничего плохого произойдет позже - я получаю зеленый тест! В теории - это правильное поведение?
Отредактировано: Я понимаю, что, возможно, это ограничение .NET и как утверждается в MsTest. Исправлено исключение. Начиная с catch
- ловит все, что улавливает исключение assert. Но правильно ли это в теории или конкретно в MsTest?
Это была шип-логика, которая будет перенесена в метод. В любом случае, обратите внимание на себя - не используйте try..catch в MsTest. Интересно, как это происходит в других тестовых средах - Java, PHP. – nikita
Ах, извините, что вы имели в виду C# frameworks. Java давно, но довольно уверен, что он делает то же самое. Совет. Обновите вопрос с информацией о том, что вас интересует Java, PHP и т. Д. Gl с вашим ответом и счастливым кодированием :) – bas