Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 初始化Automapper+;TDD和x2B;MVC_Asp.net Mvc 3_Tdd_Automapper - Fatal编程技术网

Asp.net mvc 3 初始化Automapper+;TDD和x2B;MVC

Asp.net mvc 3 初始化Automapper+;TDD和x2B;MVC,asp.net-mvc-3,tdd,automapper,Asp.net Mvc 3,Tdd,Automapper,我正在创建一个要编辑的测试。这是操作返回一个viewmodel,它是使用automapper从实体创建的,但在我的测试中,我收到了异常,因为automapper未初始化。如何在测试中初始化automapper 我的测试代码如下: public void Action_Editar_Deve_Retornar_ProdutoFormModel_Carregado() { var produto = FakeDadosProduto.CriarProduto(1);

我正在创建一个要编辑的测试。这是操作返回一个viewmodel,它是使用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);
    }
public void Action\u Editar\u Deve\u retronar\u ProdutoFormModel\u Carregado()
{
var produto=FakeDadosProduto.CriarProduto(1);
var produtos=new Mock();
普罗杜托斯
.Setup(p=>p.Obter(It.IsAny())
.退货(produto);
var控制器=CriarController(produtos.Object);
var viewResult=controller.Editar(Guid.NewGuid());
AreEqual(“produto teste-1”((ProdutoFormModel)viewResult.Model).Nome);
}
Tks.

在您的测试设置中(或在测试夹具设置中只调用一次初始化),您可以调用初始化Automapper的方法。假设您在全局.asax中有一个方法InitializeAutoMapper,您的测试夹具设置应为:

[TestFixtureSetUp]
public void Setup()
{
    //MvcApplication is your global.asax class
    MvcApplication.InitializeAutoMapper(); 
}
此外,您还可以在控制器中插入Automapper的映射引擎,并在测试中伪造它,这样您就不需要初始化Automapper

public MyController(IMappingEngine mappingEngine){...}

我不会在控制器中插入automapper,因为我创建了一个viewresult来执行此操作。