gpt4 book ai didi

c# - NUnit 测试用例预期消息

转载 作者:行者123 更新时间:2023-11-30 14:25:53 25 4
gpt4 key购买 nike

所以我希望能够在 TestCase 中指定不同的异常消息,但不知道如何完成

这是原来的

[Test]
[ExpectedException(typeof(SystemException), ExpectedMessage = "Holiday cannot start or end on a weekend or non-working day")]

public void AddHolidays_StartsInvlaid()
{}

这就是测试用例

[TestCase("27/04/2025", "28/05/2025", "FullDay", "FullDay", ExpectedMessage = "Holiday cannot start or end on a weekend or non-working day")]
[ExpectedException(typeof(SystemException), ExpectedMessage)]

public void AddHolidays_Exceptions(string dateFrom, string dateTo, string fromPeriod, string toPeriod)
{}

该方法工作正常,但我只想能够使用 NUnit TestCase 指定异常消息

最佳答案

如果可以,我会建议远离 ExpectedException。这被认为是一种不好的做法,因为如果您的测试中的代码在您没有预料到的地方抛出相同的异常,它可能会导致误报。因此,ExpectedException 已从 NUnit 3 中删除。此外,如您所见,ExpectedException 也未在 NUnit 中的所有数据驱动属性中得到完全支持。

将您的代码移动到 Assert.Throws 将解决您的问题。您可以将来自 TestCase 的预期消息作为常规参数传递。为了便于阅读,我将简化;

[TestCase("27/04/2025", "Holiday cannot start or end on a weekend or non-working day")]
public void AddHolidays_Exceptions(string date, string expectedMessage)
{
Assert.That(() => ParseDate(date), Throws.ArgumentException.With.Message.EqualTo(expectedMessage));
}

关于c# - NUnit 测试用例预期消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37045031/

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