Все работает над MSUnit, кроме моего Assert, я проверил и обнаружил, что он немного отличается в MSUnit, чем nUnit, прошел через сообщение в блоге и делал то же самое, но все еще получал ошибку при отладке теста.MSUnit Assert not Working
Когда я проверяю мой бывший в модульном тесте (после броска ошибки), сообщение, которое я получаю «ошибка приложения», который терпит неудачу испытание, как ожидается, сообщение отличается
Любые идеи?
[TestMethod]
[ExpectedException(typeof(InvalidAreaException))]
public void GetAreaWithNegativeValueTest()
{
try
{
Utility.GetArea(2, -1, 2);
}
catch (InvalidAreaException ex)
{
Assert.AreEqual ("Inputs must be positive numbers", ex.Message);
throw;
}
}
//Exception Class
public class InvalidAreaException : ApplicationException, ISerializable
{
public string msg;
public InvalidAreaException(string message)
{
//msg = message;
}
}
//Actual Method to be tested
public static double GetArea(int arg1, int arg2, int arg3)
{
double area = 0d;
if ((arg1 < 0) || (arg2 < 0) || (arg3 < 0))
{
throw new InvalidAreaException("Inputs must be positive numbers");
}
}
Ваш метод GetArea не имеет оператора return, он даже компилируется? – Paolo
он не называется MSUnit, он называется средой MSTests, в любом случае попытайтесь удалить try/catch из метода: «GetAreaWithNegativeValueTest», потому что вы хотите, чтобы метод правильно определял исключение? –
Я бы пересмотрел ваш модульный тест. Хороший тест должен иметь только один путь через код (иначе вы рискуете логической проблемой в самом тесте). Выполнение этого, скорее всего, укажет на вашу проблему. –