MSUnit断言不工作

时间:2015-03-08 17:32:23

标签: c# unit-testing

除了我的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");
        }   
    }

1 个答案:

答案 0 :(得分:0)

将InvalidAreaException的C'tor更改为:然后您的测试将通过

    public class InvalidAreaException : ApplicationException, ISerializable
    {

        public InvalidAreaException(string message):base(message)
        {
        }
    }

你的断言是针对Message属性的,它是基类的属性,你忘了填充这个属性