C# 需要帮助理解接口继承<;T>;
我正在使用xUnit for.NETCore3.0API编写集成测试。在参考microsoft文档时,我遇到了以下示例代码。我不能理解C# 需要帮助理解接口继承<;T>;,c#,asp.net-core,integration-testing,xunit,C#,Asp.net Core,Integration Testing,Xunit,我正在使用xUnit for.NETCore3.0API编写集成测试。在参考microsoft文档时,我遇到了以下示例代码。我不能理解 实现接口的类定义的语法。有人能解释一下吗 如何在构造函数中注入依赖性 公共类基本测试:IClassFixture { 私有只读WebApplicationFactory\u工厂; 公共基本测试(WebApplicationFactory) { _工厂=工厂; } [理论] [在线数据(“/”)] [在线数据(“/索引”)] [在线数据(“/About”)] [在
公共类基本测试:IClassFixture
{
私有只读WebApplicationFactory\u工厂;
公共基本测试(WebApplicationFactory)
{
_工厂=工厂;
}
[理论]
[在线数据(“/”)]
[在线数据(“/索引”)]
[在线数据(“/About”)]
[在线数据(“/隐私”)]
[在线数据(“/Contact”)]
公共异步任务Get_EndpointsReturnSuccessAndCorrectContentType(字符串url)
{
//安排
var client=_factory.CreateClient();
//表演
var response=wait client.GetAsync(url);
//断言
response.ensureccessStatusCode();//状态代码200-299
Assert.Equal(“text/html;charset=utf-8”,
response.Content.Headers.ContentType.ToString());
}
}
请查看这篇帖子语法没有什么特别之处-它只是一个通用的intreface。它可以是egIList
。不过在这种情况下,类型参数应该是类中所有测试共享的Fixture。签入XUnit的docsWebApplicationFactory
是一种特殊类型的类,它基于Startup
构建了一个完整的ASP.NET核心应用程序,其中包含模拟服务等,并允许您通过CreateClient
创建的模拟客户端调用控制器操作。夹具是依赖项。阅读sharedcontext
文章,了解Fixture的含义(本质上是所有测试都必须共享的东西)。在这种情况下,Fixture是一个工厂,它为模拟站点生产客户端。在第二条评论中,该工厂可供所有想要测试完整ASP.NET核心站点的测试套件使用。第一位评论者还发布了一个关于课程安排的博客链接。
public class BasicTests: IClassFixture<WebApplicationFactory<RazorPagesProject.Startup>>
{
private readonly WebApplicationFactory<RazorPagesProject.Startup> _factory;
public BasicTests(WebApplicationFactory<RazorPagesProject.Startup> factory)
{
_factory = factory;
}
[Theory]
[InlineData("/")]
[InlineData("/Index")]
[InlineData("/About")]
[InlineData("/Privacy")]
[InlineData("/Contact")]
public async Task Get_EndpointsReturnSuccessAndCorrectContentType(string url)
{
// Arrange
var client = _factory.CreateClient();
// Act
var response = await client.GetAsync(url);
// Assert
response.EnsureSuccessStatusCode(); // Status Code 200-299
Assert.Equal("text/html; charset=utf-8",
response.Content.Headers.ContentType.ToString());
}
}