У меня есть класс, в котором я проверяю индекс или длину строки. И я хочу написать отрицательный тест Nunit:
- если длина строки вне допустимого диапазона, Nunit Test верен. Или первый индекс - это цифра «ложь», тест Nunit верен.
Что я пробую:
Мой CheckKeyClass:
public void SetKey(string keyToAnalyse)
{
Line = new string[keyToAnalyse.Length];
int nummeric;
bool num;
if (Line.Length == 0 || Line.Length < 24)
{
throw new Exception("Index Out of Range " + Line.Length);
}
// Ist Product a Character
num = int.TryParse(Line[0], out nummeric);
if (!num)
{
if (Line[0] == "K")
{
Product = 0;
}
}
else
{
throw new Exception("The Productnumber is not right: " + Line[0] ". \nPlease give a Character.");
}
}
Мой тест Nunit:
[Test]
public void NegativeTests()
{
keymanager.SetKey("KM6163-33583-01125-68785");
// Throws<ArgumentOutOfRangeException>(() => keymanager.Line[24]);
}
// ExpectedException Handling
public static void Throws<T>(Action func) where T : Exception
{
var exceptionThrown = false;
try
{
func.Invoke();
}
catch (T)
{
exceptionThrown = true;
}
if (!exceptionThrown)
{
throw new AssertFailedException(String.Format("An exception of type {0} was expected, but not thrown", typeof(T)));
}
}
Таким образом, если длина линии вне допустимого диапазона, тест также должен быть зеленым. Как мне использовать, что Тесты верны?
Спасибо
Assert.Throws<T>
? - person Cristian Lupascu   schedule 02.10.2013