Хорошей ли практикой является издевательство над Automapper в модульных тестах?C#

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

Сообщение Anonymous »

Есть эта кодовая база, в которой мы используем automapper и имеем два уровня: домен и сервис. У каждого есть свой объект для представления данных: DomainItem и ServiceItem. Служба получает данные из домена, для сопоставления использует внедренный в конструктор экземпляр automapper

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

class Service
{
public ServiceItem Get(int id)
{
var domainItem = this.domain.Get(id);
return this.mapper.Map(domainItem);
}
}
Используйте лучшие практики, чтобы у Mapper не было побочных эффектов и внешних зависимостей. Вы должны написать статическую функцию для преобразования одного объекта в другой за считанные секунды, просто сопоставляя поля.

Имея это в виду, стоит ли издеваться над картографом в подобные юнит-тесты?

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

[TestClass]
class UnitTests
{
[TestMethod]
public void Test()
{
var expected = new ServiceItem();

var mockDomain = new Mock();
// ... setup
var mockMapper = new Mock();
mockMapper.Setup(x => x.Map(It.IsAny()))
.Returns(expected);

var service = new Service(mockDomain.Object, mockMapper.Object);
var result = service.Get(0);

Assert.AreEqual(expected, result);
}
}
Мне кажется, что такой модульный тест на самом деле не приносит никакой пользы, потому что он эффективно тестирует только макеты, поэтому я бы либо вообще не писал его ИЛИ я бы использовал настоящий картограф, а не тот, который высмеивали. Я прав или я что-то упускаю?

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

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

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

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

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

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