#c_sharp #net_core #automapper
Продакшен код работает с автомаппером, есть цель протестировать работу автомаппера.
Имеется в виду : протестировать правильность маппинга тех или иных сущностей.
Вот что написал я:
[Test]
public void MapFromUserToDalUser()
{
// arrange
var user = new User()
{
Id = 1,
Email = "kek@cheburek.ru",
Name = "Birsultan Nazarbaev",
Phone = "233-655-900",
SsoId = "myuniquessoid",
ContactDetails = "shieee",
Roles = new List() { RolesEnum.User, RolesEnum.Moderator }
};
// act
var dalUser = mapper.Map(user);
// assert
Assert.AreEqual(user.Id, dalUser.Id);
Assert.AreEqual(user.Name, dalUser.Name);
Assert.AreEqual(user.Phone, dalUser.Phone);
Assert.AreEqual(user.SsoId, dalUser.SsoId);
Assert.AreEqual(user.Email, dalUser.Email);
Assert.AreEqual(user.ContactDetails, dalUser.ContactDetails);
Assert.AreEqual(
user.Roles.Select(x => (int)x).OrderBy(x => x).ToList(),
dalUser.DalUserDalRoles.Select(x => x.DalRoleId).OrderBy(x => x).ToList());
}
Как по мне - это не особо верный подход написания тестов для автомаппера, т.к. я
создаю сущность вручную после делаю маппинг и сравниваю.
Знаю, что у автомаппера есть возможность автоматически генерить фейк и проверить
смапилось ли корректно или нет.
Вопрос в том, как сделать то ,что я сделал вручную, автоматически?
Ответы
Ответ 1
AutoMapper тестировать не надо. Для этого у него есть Mapper.Configuration.AssertConfigurationIsValid(); http://docs.automapper.org/en/stable/Configuration-validation.html Если у вас есть сложная функция конвертации, которую вы вызываете при маппинге, то тестируйте конкретно эту функцию.
Комментариев нет:
Отправить комментарий