Инициализировать Automapper + TDD + MVC - PullRequest
1 голос
/ 14 мая 2011

Я создаю один тест для редактирования действия.Это действие, возвращающее одну модель представления, которая была создана из сущности с использованием automapper, но в моем тесте я получил исключение, потому что не было инициализировано automapper.Как мне инициализировать automapper в моих тестах?

Мой код теста ниже:

    public void Action_Editar_Deve_Retornar_ProdutoFormModel_Carregado()
    {
        var produto = FakeDadosProduto.CriarProduto(1);
        var produtos = new Mock<IProdutos>();
        produtos
            .Setup(p => p.Obter(It.IsAny<Guid>()))
            .Returns(produto);

        var controller = CriarController(produtos.Object);

        var viewResult = controller.Editar(Guid.NewGuid());

        Assert.AreEqual("produto teste-1", ((ProdutoFormModel)viewResult.Model).Nome);
    }

Tks.

1 Ответ

2 голосов
/ 15 мая 2011

В вашей тестовой настройке (или настройке тестового прибора для вызова инициализации только один раз) вы можете вызвать метод, который инициализирует Automapper. Предположим, у вас есть метод InitializeAutoMapper в вашем global.asax , ваша установка тестового устройства должна быть:

[TestFixtureSetUp]
public void Setup()
{
    //MvcApplication is your global.asax class
    MvcApplication.InitializeAutoMapper(); 
}

Кроме того, вы можете добавить механизм сопоставления Automapper в свои контроллеры и подделать его в своих тестах, чтобы вам не нужно было инициализировать Automapper.

public MyController(IMappingEngine mappingEngine){...}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...