Asp.net-Core
如何在 .net6 中使用 WebApplicationFactory(沒有可說的入口點)
在 ASP.NET Core 6 中,預設模板將所有內容從
Sturtup.cs移入Program.cs,並使用 Program.cs 中的頂級語句,因此不再有(可說的)Program類 ether。這看起來很棒,但現在,我需要測試所有這些。
WebApplicationFactory<T>仍然希望我通過入口點類,但我不能這樣做(因為它的名字現在無法形容)。在 ASP.NET Core 6 中如何配置集成測試?
該問題已在 ASP.NET Core RC1 上解決,但截至目前(2021 年 9 月 20 日),文件不完整。
編譯器會在後台生成一個
Program可以與WebApplicationFactory<>. 該課程不是公開的,因此InternalsVisibleTo應該使用項目設置。Damien Edwards 的 Minimal API 範例使用最新的 nightly bits。測試網路應用程序類聲明為:
internal class PlaygroundApplication : WebApplicationFactory<Program> { private readonly string _environment; public PlaygroundApplication(string environment = "Development") { _environment = environment; } protected override IHost CreateHost(IHostBuilder builder) { ...在應用程序項目文件中,
InternalsVisibleTo用於使Program類對測試項目可見:<ItemGroup> <InternalsVisibleTo Include="MinimalApiPlayground.Tests" /> </ItemGroup>RC1 功能齊全,從以前的主要版本來看,它可能是第一個擁有
Go Live許可證的版本,這意味著它在生產中得到支持。