MVC 3控制器单元测试 - TryUpdateModel和几种异常

时间:2011-09-20 10:05:28

标签: asp.net .net asp.net-mvc-3

我在ASP.NET MVC 3.0中测试我的Controller时遇到了严重的问题。

这是控制器的方法之一:

    public ActionResult Create(FormCollection collection)
    {
        IModel model = null;
        model = modeldao.createNewObject(ref model);
        TryUpdateModel(model, null, null, new[] { "id" });
        ... // rest
    }

前面提到的方法测试中最重要的部分就是那样写的

Controller controller = new Controller(// list of mocks)
FormCollection form = new FormCollection();
form.Add("name", "object1");
form.Add("parentobject.id", "1");
controller.ValueProvider = form.ToValueProvider();
controller.Create(form);

现在,即使我模仿ArgumentNullException对象,它也会抛出ControllerContext。当我尝试在控制器中设置ValueProvider属性时:

controller.ValueProvider = form.ToValueProvider();

然后我得到MethodAccessException并且我被告知要添加新的程序集:System.ComponentModel.DataAnnotations

我已经阅读了一些关于测试MVC 3 Controller的文章(其中没有很多),但他们的提示根本不起作用,尽管代码似乎相似:

http://www.codecapers.com/post/ASPNET-MVC-Unit-Testing-UpdateModel-and-TryUpdateModel.aspx http://www.hanselman.com/blog/ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers.aspx

我想问一下是否有人遇到过这种问题并解决了它。

0 个答案:

没有答案