1

我正在使用来自 NerdDinner 的模式。我在我的测试方法中调用 Index() 并且我返回的 ViewREsult 没有数据。所以变量数据最终为空。

但是,我知道那里有数据。因为我可以转到监视窗口并展开变量结果并展开viewData->Model->ResultsView然后我看到“展开将结果视图将枚举 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);
    }
4

1 回答 1

1

这是因为 Linq 或 EF 中的延迟加载(取决于您使用的内容)查询仅在需要时执行。您可以通过调用诸如 ToList() 或 ToArray() 之类的终结器或类似的东西来强制执行它。

于 2010-08-27T14:11:35.080 回答