ASP.Net 堆栈中的 InlineData 属性如何工作?
How InlineData attribute in ASP.Net Stack work?
出于好奇,我下载了开源项目asp.net-webstack 来查看源代码。我在 C# 中找到了单元测试,如下所示:
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
using System.Net.Http;
using Microsoft.TestCommon;
namespace System.Web.Http.Routing
{
public class HttpRouteTest
{
[Theory]
[InlineData("123 456")]
[InlineData("123 {456")]
[InlineData("123 [45]6")]
[InlineData("123 (4)56")]
[InlineData("abc+56")]
[InlineData("abc.56")]
[InlineData("abc*56")]
[InlineData(@"hello12.1[)]*^$=!@23}")]
public void GetRouteData_HandlesUrlEncoding(string id)
{
HttpRoute route = new HttpRoute("{controller}/{id}");
Uri uri = new Uri("http://localhost/test/" + id + "/");
IHttpRouteData routeData = route.GetRouteData("", new HttpRequestMessage(HttpMethod.Get, uri));
Assert.Equal("test", routeData.Values["controller"]);
Assert.Equal(id, routeData.Values["id"]);
}
}
}
我如何 运行 这个测试来自 Visual Studio?没有 TestMethod 和 TestClass 属性。上下文菜单中的标准执行不起作用。
在 C# 中 运行 再次对多个数据集进行单元测试是否有一些聪明的方法?
据我所知,InlineData
是一个 xUnit 测试属性。
在 Visual Studio(2012 年或更高版本)中实现此功能的原因是 xUnit 测试适配器(即 NuGet 包 xunit.runner.visualstudio
)在引用 xUnit
添加了 NuGet 包。
这里有一个 link 更多细节:
在 xUnit v2 中,xUnit 的 NuGet 包包括对 NuGet (xunit.runner.visualstudio
) 的引用,这使得 VS2012+ 中的 VS 运行器可以发现测试。有关概述,请参阅 xUnit docs。
出于好奇,我下载了开源项目asp.net-webstack 来查看源代码。我在 C# 中找到了单元测试,如下所示:
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
using System.Net.Http;
using Microsoft.TestCommon;
namespace System.Web.Http.Routing
{
public class HttpRouteTest
{
[Theory]
[InlineData("123 456")]
[InlineData("123 {456")]
[InlineData("123 [45]6")]
[InlineData("123 (4)56")]
[InlineData("abc+56")]
[InlineData("abc.56")]
[InlineData("abc*56")]
[InlineData(@"hello12.1[)]*^$=!@23}")]
public void GetRouteData_HandlesUrlEncoding(string id)
{
HttpRoute route = new HttpRoute("{controller}/{id}");
Uri uri = new Uri("http://localhost/test/" + id + "/");
IHttpRouteData routeData = route.GetRouteData("", new HttpRequestMessage(HttpMethod.Get, uri));
Assert.Equal("test", routeData.Values["controller"]);
Assert.Equal(id, routeData.Values["id"]);
}
}
}
我如何 运行 这个测试来自 Visual Studio?没有 TestMethod 和 TestClass 属性。上下文菜单中的标准执行不起作用。
在 C# 中 运行 再次对多个数据集进行单元测试是否有一些聪明的方法?
据我所知,InlineData
是一个 xUnit 测试属性。
在 Visual Studio(2012 年或更高版本)中实现此功能的原因是 xUnit 测试适配器(即 NuGet 包 xunit.runner.visualstudio
)在引用 xUnit
添加了 NuGet 包。
这里有一个 link 更多细节:
在 xUnit v2 中,xUnit 的 NuGet 包包括对 NuGet (xunit.runner.visualstudio
) 的引用,这使得 VS2012+ 中的 VS 运行器可以发现测试。有关概述,请参阅 xUnit docs。