我一直在使用 WebApplicationFactory 在 .NET 5、.NET Core 3.1 和 .NET Core 2.1 中进行集成测试。这对我来说一切正常。
我只是用以下命令创建我的项目:
dotnet new webapi
Run Code Online (Sandbox Code Playgroud)
然后我看到一个带有 Startup 类的Web api 项目。
然后我创建工厂类的一个实例:
private readonly WebApplicationFactory<Startup> factory = new WebApplicationFactory<Startup>();
Run Code Online (Sandbox Code Playgroud)
WebApplicationFactory 类是我非常喜欢的。它使编写集成测试变得容易。我很喜欢。Microsoft 文档还针对 .NET 6 引用了它。
但是,在使用 .NET 6 时,如何确保我的代码可以编译?
提到的命令行语句:
dotnet new webapi
Run Code Online (Sandbox Code Playgroud)
结果是一个运行良好的项目,但是(安装了 .NET 6 SDK 时)没有 Startup 类……现在我的测试无法编译,原因只有一个:Startup 类不存在。
如何解决这个问题?我发现很难想象我不能再编写集成测试,因为WebApplicationFactory<Startup>不再编译。但现在,这就是我需要面对的现实。我该如何解决这个问题?我期待能够使用该类WebApplicationFactory并继续编写集成测试。但如何呢?