MSUnit 断言不起作用

本文关键字:不起作用 断言 MSUnit | 更新日期: 2024-11-07 17:27:00

除了我的断言之外,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");
        }   
    }

MSUnit 断言不起作用

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

    public class InvalidAreaException : ApplicationException, ISerializable
    {
        public InvalidAreaException(string message):base(message)
        {
        }
    }

您的断言针对 Message 属性,该属性是基类的属性,并且您忘记填充此属性