我在 ASP.NET MVC WebAPI 项目中使用 Swagger。该项目安装了 Swashbuckle nugget 包并生成 Swagger UI 和 Swagger/docs/v1。我一直遇到的一个问题是,开发人员会因为不仔细命名其 webAPI 操作而破坏 swagger 文件。我想添加一个单元测试,以防止我在部署后访问 Swagger UI 站点并看到 swagger UI 中显示 HTTP 500 时发现 swagger/docs/v1 不可用。有谁知道如何编写单元测试来验证 Swashbuckle 可以成功生成 swagger 文档吗?
找到了一个很好的方法来做我想做的事:
[Fact]
public async Task TestSwagger()
{
var webHostBuilder = new WebHostBuilder()
.UseEnvironment("Test") // You can set the environment you want (development, staging, production)
.UseStartup<Startup>(); // Startup class of your web app project
using (var server = new TestServer(webHostBuilder))
{
using (var client = server.CreateClient())
{
string result = await client.GetStringAsync("/swagger/v1/swagger.json");
JObject root = JObject.Parse(result);
}
}
}
这使用以下 nuget 包:
- Microsoft.AspNetCore.TestHost
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)