Почему моя глобальная обработка ошибок не запускается, когда я бросаю фиктивное исключение в свой блок C#?C#

Место общения программистов C#
Ответить
Anonymous
 Почему моя глобальная обработка ошибок не запускается, когда я бросаю фиктивное исключение в свой блок C#?

Сообщение Anonymous »

Я узнаю, как писать модульные тесты. Исходя из того, что я собрал, если я хочу проверить контроллер в API C#, мне нужно издеваться/подделить входы, выходы и все его зависимости. Далее я хочу посмотреть, что происходит, когда мой контроллер сталкивается с исключением в своей логике, поэтому я придумываю исключение, как ниже код < /p>
[Fact]
public async Task GetCustomerById_FailedByDbOps()
{
// Arrange
var customerId = 1;
_customerRepoMock
.Setup(repo => repo.GetOne(customerId))
.ThrowsAsync(new Exception("Wrong or missing DB conn string"));

// Act
var result = await _controller.RetrieveCustomerById(customerId);

// Assert
var objResult = Assert.IsType(result);
Assert.Equal(500, objResult.StatusCode);
}
< /code>
, и я уже зарегистрировал глобальный обработчик исключений для моего приложения < /p>
builder.Services.AddExceptionHandler();
< /code>
Я ожидаю, что тест пройдет, так как глобальный обработчик исключений должен быть запускается, и вернуть пользовательский объект ошибки на основе логики в myglobalexceptionHandler. Но вместо этого тест не удался с самокнижным исключением. /> < /p>
Почему это? Я сделал что -то не так? Или это то, что глобальный обработчик исключений не может быть запускается в модульных тестах? Он работает нормально, когда я запускаю приложение локально.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ption-in-m
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»