Я разрабатываю веб-API, который в некоторых случаях отвечает 500 (уродливый дизайн, я знаю, но ничего не могу с этим поделать).В тестах есть ApiFixture, которая содержит AspNetCore.TestHost:
public class ApiFixture
{
public TestServer ApiServer { get; }
public HttpClient HttpClient { get; }
public ApiFixture()
{
var config = new ConfigurationBuilder()
.AddEnvironmentVariables()
.Build();
var path = Assembly.GetAssembly(typeof(ApiFixture)).Location;
var hostBuilder = new WebHostBuilder()
.UseContentRoot(Path.GetDirectoryName(path))
.UseConfiguration(config)
.UseStartup<Startup>();
ApiServer = new TestServer(hostBuilder);
HttpClient = ApiServer.CreateClient();
}
}
Когда я вызываю конечную точку API с HttpClient из этого устройства, она должна ответить 500, вместо этого я получаю исключение, которое вызывается в тестируемом контроллере,Я знаю, что в тестах это может быть хорошей функцией, но я не хочу этого - я хочу проверить реальное поведение контроллера, который возвращает внутреннюю ошибку сервера.Есть ли способ перенастроить TestServer для возврата ответа?
Код в действии контроллера не имеет значения, может быть throw new Exception();