簡體   English   中英

在集成測試中以編程方式獲取 ASP.NET Core API 版本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM