gpt4 book ai didi

c# - 如何在 nunit 中测试包含本地化日期的异常消息

转载 作者:行者123 更新时间:2023-11-30 15:28:11 24 4
gpt4 key购买 nike

我刚刚在我们的一个单元测试中遇到了一个有趣的问题。在这种情况下,我们试图确保当遇到特定的异常情况时,我们会抛出并向处理程序提供有用的消息 - 这个想法是处理程序可以直接显示(或记录)该消息。问题是当消息包含日期时 - 我们希望使用用户区域设置和他们可能在其本地系统上指定的任何覆盖来表达该日期。

问题的出现是因为我们有两个不同的 CI 基础设施(不要问 - 一个开发,一个发布),由于各种原因,实际上有两个(稍微)不同的日期设置 - 一个通过下面的测试,而另一个使用类似于“14Jan2014”的(自定义)日期格式。

[Test]
[ExpectedException(typeof(InvalidOperationException), ExpectedMessage="Invalid date: 14/01/2014")]
public void ExampleTest()
{
var date = new DateTime(2014, 01, 14);
throw new InvalidOperationException("Invalid date: " + date.ToString());
}

我知道 SetCultureCulture属性,但由于机器上日期格式的自定义方面,我认为这些不会起作用。是否有可能以某种方式忽略自定义设置并至少使用语言环境的默认值来进行测试?

最佳答案

不使用 ExpectedException 属性,而是重写您的测试以显式捕获异常并测试消息。

关于c# - 如何在 nunit 中测试包含本地化日期的异常消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26193502/

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