除了我的Assert之外,一切都在MSUnit上工作,我查了一下,发现它在MSUnit上比nUnit有点不同,经历了一篇博文并做了同样但在调试测试时仍然出错。
当我在单元测试中检查我的前(在抛出错误之后),我收到的消息是“应用程序中的错误”,由于预期的消息不同而导致测试失败
任何想法?
[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");
}
}
答案 0 :(得分:0)
将InvalidAreaException的C'tor更改为:然后您的测试将通过
public class InvalidAreaException : ApplicationException, ISerializable
{
public InvalidAreaException(string message):base(message)
{
}
}
你的断言是针对Message属性的,它是基类的属性,你忘了填充这个属性