我有一个带有 REST 和 GraphQL 端点的 ASP.NET Core Api (.NET 6.0)。GraphQL 端点是用 Hotchocolate (12.6.0) 实现的。
为了测试 REST 端点,我创建了一个TestServer
这样的:
protected static async Task<TestServer> CreateServer()
{
IHostBuilder webHostBuilder = new HostBuilder();
webHostBuilder.UseContentRoot(Directory.GetCurrentDirectory());
webHostBuilder.ConfigureWebHost(webBuilder =>
{
webBuilder
.UseTestServer()
.UseEnvironment("Test")
.ConfigureAppConfiguration((_, config) =>
config.AddJsonFile("appsettings.Test.json"))
.UseStartup<AuthenticatedTestStartup>();
});
IHost host = await webHostBuilder.StartAsync();
return host.GetTestServer();
}
AuthenticatedTestStartup
派生Startup
并覆盖那里的一些方法,例如数据库配置。使用上面创建的测试服务器,我可以使用.CreateClient()
返回HttpClient
对象的方法执行集成测试。有了这个客户端,我可以调用 REST 端点。这工作得很好。
我现在的问题是:有没有办法使用这个测试服务器对 GraphQL 端点进行集成测试,如果是:如何?如果不是:针对测试数据库以编程方式测试 GraphQL 端点的替代方法是什么?