小编Max*_*yák的帖子

使用InternalsVisibleTo的ASP.NET Core WebApplicationFactory在xunit中不起作用

我最初在 asp.net 文档上发布了一个问题,并在此处引用

由于删除了公共 Startup.cs,从 NET5 迁移到 NET6 破坏了使用 WebApplicationFactory 的大量测试。另一种选择是转向程序,该程序在新模板出现之前一直有效。在新模板中没有公共类程序,因此我们需要添加一个公共部分类 Program {}

我正在查看文档,他们提供了一个使用 InternalsVisibleTo 的新解决方案,恕我直言,它更好,因为它不会仅出于测试目的而更改代码。

然而,这会导致这样的代码

public class UnitTest1 : IClassFixture<WebApplicationFactory<Program>>
{
  public UnitTest1(WebApplicationFactory<Program> applicationFactory)
  {
    
  }
}
Run Code Online (Sandbox Code Playgroud)

然而问题是程序是内部的,这会触发 CS0051:

UnitTest1.cs(8, 12):[CS0051] 可访问性不一致:参数类型“WebApplicationFactory”比方法“UnitTest1.UnitTest1(WebApplicationFactory)”更难访问

问题是 xunit 要求它的类/构造函数是公共的。

那么有人设法在没有公众部分的情况下让这项工作正常进行吗?

c# testing xunit asp.net-core dotnet-test

3
推荐指数
1
解决办法
734
查看次数

标签 统计

asp.net-core ×1

c# ×1

dotnet-test ×1

testing ×1

xunit ×1