Я использую шаблон ASP.NET Boilerplate для ASP.NET Core. У меня есть несколько прикладных сервисов, которые я успешно протестировал.
Теперь я хочу протестировать метод контроллера, который использует эти сервисы приложений.
Метод контроллера включает в себя операцию отображения следующим образом:
var client = ObjectMapper.Map<ClientModel>(clientResponse.ClientSummary);
При выполнении этого метода тест завершается неудачей с исключением:
Сообщение: Abp.AbpException: Abp.ObjectMapping.IObjectMapper должен быть реализован для отображения объектов.
Интересно, что трассировка стека начинается с NullObjectMapper.Map
.
Я использую ту же инициализацию для AbpAutoMapper
в модуле модульного тестирования, что и в модуле Web.Mvc
:
Configuration.Modules.AbpAutoMapper().Configurators.Add(cfg =>
{
cfg.AddProfiles(typeof(PortalTestModule).GetAssembly());
});
Однако при выполнении в контексте приложения MVC операции отображения не вызывают исключение.
Что я не могу инициализировать в проекте Test
по отношению к AutoMapper?
Я создал проект репро. См ссылка . Существует тест под названием GetFoos_Test
, который проверяет метод контроллера Index()
на FoosController
.
public async Task GetFoos_Test()
{
var mockFooService = new Mock<IFooAppService>();
// ...
var fooController = new FooController(mockFooService.Object);
var result = await fooController.Index();
result.ShouldNotBeNull();
}