Как издеваться над зависимостью для Ivalueresolver от Automapper в модульных тестахC#

Место общения программистов C#
Ответить
Anonymous
 Как издеваться над зависимостью для Ivalueresolver от Automapper в модульных тестах

Сообщение Anonymous »

После предыдущего вопроса я имею простую реализацию Ivalueresolver < /code> < /p>

Код: Выделить всё

public class FileLinkResolver : IValueResolver
{
private readonly IFileStorage _fileStorage;

public FileLinkResolver(IFileStorage fileStorage)
{
_fileStorage = fileStorage;
}

public string Resolve(Configuration source, ConfigurationDto destination, string destMember, ResolutionContext context)
{
return _fileStorage.GetShortTemporaryLink(source.Path);
}
}
< /code>

и простой профиль отображения < /p>

public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap()
.ForMember(dest => dest.FilePath, opt => opt.MapFrom());
}
}
< /code>

Для производства он работает, как и ожидалось, когда следующая настройка < /p>

services.AddTransient(...);
services.AddAutoMapper();
< /code>

используется, а затем в контроллере imapper < /code> введен. загрязнять Mapper < /p>

var mapperStub = new Mapper(new MapperConfiguration(map => map.AddProfile(new MappingProfile())));
< /code>

и когда я запускаю тесты для метода ведьма должна вернуть сопоставление DTO, я получил < /p>


Automapper.AutomApperMappingException: Типы отображения ошибок. < /p>

Mapping types:
Configuration -> ConfigurationDto
DataAccess.Models.Configuration -> Dto.ConfigurationDto

Type Map configuration:
Configuration -> ConfigurationDto
DataAccess.Models.Configuration -> Dto.ConfigurationDto

Destination Member:
FilePath

---- System.MissingMethodException : No parameterless constructor defined for this object.

Я попытался добавить конструктор без параметра в FileLinkReSolver , но тогда, NullReferenceException
Это вопрос: как разрешить зависимости для Valueresolver < /p>

Подробнее здесь: https://stackoverflow.com/questions/591 ... unit-tests
Ответить

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

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

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

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

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