我正在使用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);
}
答案 0 :(得分:1)
这是因为Linq或EF中的Lazy Loading(取决于您使用的是什么)查询仅在需要时执行。您可以通过调用类似ToList()或ToArray()或类似的终结器来强制执行它。