[英]Get ASP.NET Core API version programmatically in integration test
我將 ASP.NET Core 與ASP.NET API 版本控制服務一起使用。
當我注冊服務時,我使用這種格式:
services.AddVersionedApiExplorer(o => o.GroupNameFormat = "'v'VVV");
在集成測試中,使用WebApplicationFactory
:
var controller = nameof(CustomerController).Replace("Controller", "");
var action = nameof(CustomerController.SignIn);
var version = "v0"; // <------- the problem
var route = $"/api/${version}/${controller}/${action}";
var client = _factory.CreateClient();
var response = await client.GetAsync(route);
我不想硬編碼version
。 是否有可能以某種方式從測試服務器獲取它? 也許來自版本服務?
這可以從容器中檢索,如下所示:
var version = _factory
.Services
.GetRequiredService<IApiVersionDescriptionProvider>()
.ApiVersionDescriptions
.Single() // if you have multiple versions, choose correct one
.GroupName;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.