首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NUnit - UpdateModel问题: NullReferenceException

NUnit - UpdateModel问题: NullReferenceException
EN

Stack Overflow用户
提问于 2011-11-14 15:03:13
回答 1查看 294关注 0票数 1

我在使用UpdateModel()方法测试类时遇到了问题。我得到了System.NullReferenceException。我使用NUnit。这是我在HomeController中的方法:

代码语言:javascript
复制
    public ActionResult ProjectsEdit(Projects model)
    {
        var projects = db.Projects.First();
        projects.Content = model.Content;
        UpdateModel(projects);
        db.SaveChanges();
        return RedirectToAction("Projects");            
    }

下面是测试类:

代码语言:javascript
复制
    [Test]
    public void ProjectsEditPostTest()
    {
        var routeData = new RouteData();
        var httpContext = MockRepository.GenerateStub<HttpContextBase>();
        //var httpContext = new FakeHttpContext("Edit");
        FormCollection formParameters = new FormCollection();
        ControllerContext controllerContext =
        MockRepository.GenerateStub<ControllerContext>(httpContext,
                                                            routeData,
                                                            controller);
        controller.ControllerContext = controllerContext;

        // Act
        string newContent = "new content";
        Projects projects = new Projects { ID = 1, Content = newContent };
        controller.ProjectsEdit(projects);

        // Assert
        Assert.AreEqual(newContent, controller.db.Projects.First().Content);            
    }

我该怎么做才能让它工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-14 15:19:31

只需在断言阶段添加以下行:

代码语言:javascript
复制
controller.ValueProvider = formParameters.ToValueProvider();

它将值提供程序分配给UpdateModel方法所依赖的控制器。这个值提供程序与您定义的FormCollection变量相关联,它允许您传递一些值。

您还可以检查使用MvcContrib.TestHelper来简化排列阶段的similar answer

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8118303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档