小编ran*_*ous的帖子

测试方法'X'引发异常:System.InvalidOperationException:Mapper未初始化.使用适当的配置调用Initialize

这是我正在开发单元测试的方法的代码:

public ActionResult ItemsListing()
{
    var itemsList = itemsRepository.GetItems(true);

    if (itemsList.Count() > 0)
    {
        var itemsListVMs = Mapper.Map<IEnumerable<Item>, IEnumerable<itemsListingViewModel>>(itemsList);
        return View(itemsListVMs);
    }
    else
    {
        return RedirectToAction("Home");
    }

}
Run Code Online (Sandbox Code Playgroud)

以下是映射配置文件中的代码:

public static class MappingConfig
{
    public static void RegisterMaps()
    {
        Mapper.Initialize(config =>
        {
            config.CreateMap<Item, itemsListingViewModel>();
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

而我在初始化映射Application_Start()的事件Global.asax如下:

MappingConfig.RegisterMaps();
Run Code Online (Sandbox Code Playgroud)

下面是我正在尝试运行的简单测试方法:

[TestMethod]
public void ItemsListing()
{
    HomeController controller = new HomeController();

    ViewResult result = controller.ItemsListing() as ViewResult;

    Assert.IsNotNull(result);
}
Run Code Online (Sandbox Code Playgroud)

我只是运行应用程序时工作正常.但是当我尝试运行单元测试方法时,它会显示上面提到的错误消息.任何人都可以帮我解决这个问题吗?谢谢!

c# asp.net-mvc unit-testing automapper

5
推荐指数
1
解决办法
3733
查看次数

标签 统计

asp.net-mvc ×1

automapper ×1

c# ×1

unit-testing ×1