Мокинг класса обслуживания с помощью модульных тестов - PullRequest
1 голос
/ 14 июля 2020

Это кодовая база, в которой мы используем automapper и у нас есть слой Cafes. У которого есть объект для представления данных, CafeService.

class CafeService

public async Task<CafeResponse> Get(int cafeId)
        {
            var cafe = await _cafeRepository.GetByIdAsync(cafeId);

         
            return _mapper.Map<CafeResponse>(cafe);
        }

Как бы вы, go, насчет имитации картографа в модульных тестах? То, чего я раньше не делал. На данный момент это мой модульный тест. вокруг того, как действительно протестировать .Get (), который проверяет, правильно ли переданы параметры для отдельных вызовов зависимости на основе ответов.

1 Ответ

1 голос
/ 14 июля 2020
• 1000 * Если вы вставляете его в конструктор вручную:
var profile = new YouMapperProfile();
var configuration = new MapperConfiguration(cfg => cfg.AddProfile(profile));
var service = new CafeService(_repoMock.Object, new AutoMapper.Mapper(configuration));

Или если вы регистрируете зависимости с помощью auotfixture:

var fixtureContainer = new Fixture();
fixtureContainer.Customize(new AutoMoqCustomization());
var profile = new YouMapperProfile();
var configuration = new MapperConfiguration(cfg => cfg.AddProfile(profile));
fixtureContainer.Register<IMapper>(() => new AutoMapper.Mapper(configuration));
...