ViewResult不返回任何数据

时间:2010-08-27 14:03:19

标签: unit-testing asp.net-mvc-2 nerddinner viewresult

我正在使用NerdDinner的模式。我在我的测试方法中调用了Index(),而我返回的ViewREsult没有数据。因此,变量数据最终为空。

但是,我知道那里有数据。因为我可以转到观察窗口并展开变量结果并展开 viewData->模型 - >结果视图然后我看到“展开结果视图将枚举IEnumerable“当我展开它时,数据存在。

除非我扩展,否则知道为什么数据会返回null?

感谢 雅

   [TestMethod]
    public void Index__Should_Return_1_or_More_lessons()
    {
        var controller = new LessonController(new FakeLessonRepository());

        var result = controller.Index() as ViewResult;

        var data = result.ViewData.Model as IList<Lesson>;
        Assert.IsTrue(data.Count > 0);
    }

1 个答案:

答案 0 :(得分:1)

这是因为Linq或EF中的Lazy Loading(取决于您使用的是什么)查询仅在需要时执行。您可以通过调用类似ToList()或ToArray()或类似的终结器来强制执行它。