xUnit 自定义 UseCulture 属性 - 示例属性是否包含任何问题?

问题描述 投票:0回答:2

我有一个 ASP.NET Core 6 Web API 应用程序。 我正在使用 xUnit 编写单元测试。

我需要改变一些测试的文化。

根据这个答案这里,建议创建一个自定义属性

[UseCulture("en-US")]
,如xUnit示例这里所示。 然而,与此同时,我在here看到了这个讨论,其中指出 xUnit 团队无意将此属性合并到库中。

你有什么想法吗?

您是否发现该属性的实现方式存在任何类型的威胁?或者还有其他实施方面的问题吗?

c# asp.net-core xunit
2个回答
2
投票

为什么不将所需的区域性传递给您的测试,然后您控制该区域性的配置方式:

[InlineData("en-GB")]
[InlineData("en-US")]
[Theory]
public void MyTest(string culture)
{
   // Arrange
   Thread.CurrentThread.CurrentCulture = new CultureInfo(culture, false));

   etc
}

0
投票

正如 xUnit 的一位维护者对您的引用的 GitHub 问题做出的回应,他们没有看到

UseCultureAttribute
有任何问题,他们只是不想将其包含在他们的框架中。

我相信这是为了更好,因为维护者可以专注于维护框架。由于

UseCultureAttribute
是一个完美的例子,他们的框架支持扩展 xUnit,因此那些确实需要文化测试的人可以轻松地自己实现。

另一方面,如果有一个具有此属性的 xUnit 扩展包就太好了 😇

© www.soinside.com 2019 - 2024. All rights reserved.