Я пытаюсь подтвердить с помощью юнит-теста, что промежуточное ПО фактически добавляется в конвейер. У меня есть следующий статический метод, который добавляет промежуточное программное обеспечение. Это то, что я тестирую.
public static class HandleDbUpdateExceptionExtensions
{
public static IApplicationBuilder UseDbUpdateExceptionHandler(this IApplicationBuilder builder)
{
return builder.UseMiddleware<DbUpdateExceptionHandler>();
}
}
Я знаю, что на самом деле это работает, потому что промежуточное программное обеспечение работает на моем сайте. Тем не менее, я хотел бы написать модульный тест, чтобы он всегда включался в будущие сборки. Мой модульный тест, однако, не проходит:
[Fact(DisplayName = "Exception handler is added to IApplicationBuilder")]
public void DbUpdateExceptionHandler_Added_To_IApplicationBuilder()
{
var builder = new Mock<IApplicationBuilder>().Object;
builder.UseDbUpdateExceptionHandler();
Assert.NotNull(builder.ApplicationServices);
//var test = builder.ApplicationServices.GetService(typeof(DbUpdateExceptionHandler));
}
builder.ApplicationServices
равно нулю, поэтому тест в настоящее время не проходит. Я предполагаю, что это терпит неудачу, потому что я просто издеваюсь IApplicationBuilder
, но в Интернете очень мало актуальных материалов о модульном тестировании существования промежуточного программного обеспечения .Net Core.
Любая помощь очень ценится!