ASP.NET Core 6のMinimal APIを単体テストするとき、StartupクラスがないのでWebApplicationFactoryでテストするにはどうするんだろう?と思って調べたらDocsにありました。

6.0 での新しい最小ホスティング モデルに移行されたコード サンプル | Microsoft Docs

InternalsVisibleTo属性を使う方法とProgramクラスをpublicにする方法をがあるようです。

InternalsVisibleTo属性を使う

<ItemGroup>
    <InternalsVisibleTo Include="MyTestProject" />
</ItemGroup>

または

[assembly: InternalsVisibleTo("MyTestProject")]

.csprojにInternalsVisibleToを指定できることを初めて知りました。

MSBuild プロジェクトの共通項目 - MSBuild | Microsoft Docs

Programクラスをpublicにする

public partial class Program {
}

私はIClassFixtureを使うことが多いので、Programクラスをpublicにする方法を使うのかなと思いました。

public class SampleControllerTest : IClassFixture<WebApplicationFactory<Program>> {
	private readonly WebApplicationFactory<Program> _factory;

	public SampleControllerTest(WebApplicationFactory<Program> factory) {
		_factory = factory;
	}
}