ASP.NET Core 6.0 集成测试
1. 测试项目必须:
引用 Microsoft.AspNetCore.Mvc.Testing 包。
2. 使用默认 WebApplicationFactory 的基本测试
ASP.NET Core 6 引入了 WebApplication,它消除了对 Startup 类的需求。 若要在没有 Startup 类的情况下使用 WebApplicationFactory 进行测试,ASP.NET Core 6 应用需要通过以下一种方式向测试项目公开隐式定义的 Program 类:
var builder = WebApplication.CreateBuilder(args);
// ... Configure services, routes, etc.
app.Run();
+ public partial class Program { }
3. 在 Web 应用程序中进行更改后,测试项目现在可以将 Program 类用于 WebApplicationFactory。
[Fact]
public async Task HelloWorldTest()
{
// 该方式在 ASP.NET Core 3.1 中同样适用,只需要将 Program 修改为 Web项目的 Startup 类即可。
var application = new WebApplicationFactory<Program>()
.WithWebHostBuilder(builder =>
{
// ... Configure test services
});
var client = application.CreateClient();
//...
}
4. 自定义 WebApplicationFactory
一个测试项目可以对多个Web项目进行测试,通过从 WebApplicationFactory 来创建一个或多个自定义工厂,可以独立于测试类创建 Web 主机配置:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章