Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 需要帮助理解接口继承<;T>;_C#_Asp.net Core_Integration Testing_Xunit - Fatal编程技术网

C# 需要帮助理解接口继承<;T>;

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”)] [在

我正在使用xUnit for.NETCore3.0API编写集成测试。在参考microsoft文档时,我遇到了以下示例代码。我不能理解

  • 实现接口的类定义的语法。有人能解释一下吗

  • 如何在构造函数中注入依赖性

  • 公共类基本测试: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。它可以是eg
    IList
    。不过在这种情况下,类型参数应该是类中所有测试共享的Fixture。签入XUnit的docs
    WebApplicationFactory
    是一种特殊类型的类,它基于
    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());
        }
    }