Вам придется изменить код. Одним из основных преимуществ модульного тестирования является не защита от ошибок, а помощь в написании более качественного кода.
ErrorLogHelper
- это либо сервис, либо горизонтальный аспект.
Moq - это дизайн сделан для макетов интерфейсов или виртуальных методов. Для этого вам нужно как-то внедрить эту зависимость в целевой объект.
В этом случае вам нужно сделать это зависимостью службы, заставить ее реализовать интерфейс и внедрить ее через свойство или конструктор.
Встроенная инициализация означает, что код должен выполняться с модульным тестом, так как это неотъемлемая часть потока кода.
private IHostingEnvironment _hostingEnvironment;
public IErrorLogHelper logHelper
public ControllerNameController(IHostingEnvironment hostingEnvironment, IErrorLogHelper logHelper){
_hostingEnvironment = hostingEnvironment;
this.logHelper = logHelper;
}
И в вашем улове
catch (Exception ex)
{
string controllerInfo = controller.ActionDescriptor.DisplayName;
logHelper.ErrorLogToFile(controllerInfo, ex);
}