xUnit文化意识测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xUnit文化意识测试相关的知识,希望对你有一定的参考价值。
我在一分钟前在Visual Studio 2017上创建了一个新的xunit测试项目。该项目包含xunit nuget包,它是net-core 2.0的2.3.1版本
我在xUnit Sample看到了注释的用法;但是,当我尝试使用UseCulture
注释时,我遇到了这样的错误:
找不到类型或命名空间名称“UseCultureAttribute”。
我错过了什么?
[Fact, UseCulture("en-US")]
public void Test1()
{
double a = 5.01;
string aStr = a.ToString();
Assert.Equal("5.01", aStr);
}
答案
在撰写本文时,我无法在.NET Core 2.0中找到它。这是一个例子(基于你的问题评论中给出的link)。您只需添加xunit.core
nuget包即可实现此功能。
我的例子在测试之前将它设置为InvariantCulture
(并在之后恢复它),你可以调整到你需要的文化或使用link中给出的更通用的选项。
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class UseInvariantCultureAttribute : BeforeAfterTestAttribute
{
private CultureInfo originalCulture;
private CultureInfo originalUICulture;
public override void Before(MethodInfo methodUnderTest)
{
this.originalCulture = Thread.CurrentThread.CurrentCulture;
this.originalUICulture = Thread.CurrentThread.CurrentUICulture;
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
}
public override void After(MethodInfo methodUnderTest)
{
Thread.CurrentThread.CurrentCulture = this.originalCulture;
Thread.CurrentThread.CurrentUICulture = this.originalUICulture;
}
}
以上是关于xUnit文化意识测试的主要内容,如果未能解决你的问题,请参考以下文章