gpt4 book ai didi

c# - NUnit - ExpectedMessage 不同错误

转载 作者:太空狗 更新时间:2023-10-30 01:11:15 24 4
gpt4 key购买 nike

我是 TDD 的新手,正在使用 NUnit 和 Moq。我有一个方法,我希望有一个异常,所以我想尝试一下框架功能。

我的测试代码如下所示:

    [Test]
[ExpectedException(ExpectedException = typeof(MockException), ExpectedMessage = "Actual differs from expected")]
public void Write_MessageLogWithCategoryInfoFail()
{
string message = "Info Test Message";

Write_MessageLogWithCategory(message, "Info");

_LogTest.Verify(writeMessage =>
writeMessage.Info("This should fail"),
"Actual differs from expected"
);
}

但我总是收到errormessage,实际的异常信息与预期的信息不同的错误信息。我做错了什么?

最佳答案

不幸的是,Resharper 测试运行器有一个错误/限制 - 它不处理 ExpectedException 属性。您有 2 个选择:

  1. 使用其他一些测试运行器(例如 nunit-gui.exe,与 NUnit 一起提供)- 但这种方法会使调试测试变得很痛苦

  2. 使用以下模式手动捕获并验证异常:

    [测试]public void Write_MessageLogWithCategoryInfoFail(){ 尝试 { string message = "信息测试消息";

      Write_MessageLogWithCategory(message, "Info");

    _LogTest.Verify(writeMessage =>
    writeMessage.Info("This should fail"),
    "Actual differs from expected"
    );
    Assert.Fail("Expected exception");
    }
    catch(MockException e)
    {
    Assert.AreEqual("Actual differs from expected", e.Message);
    }

真是太遗憾了,因为描述性的方式说你期待一个异常要好得多!

附带说明一下,我希望上面的代码只是为了玩弄框架——通常你永远不会捕获 MockExceptions :)

关于c# - NUnit - ExpectedMessage 不同错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3004733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com