1

NerdDinnerのパターンを使用しています。テストメソッドでIndex()を呼び出しましたが、返されるViewREsultにデータがありません。したがって、変数データは最終的にnullになります。

しかし、そこにはデータがあることを私は知っています。ウォッチウィンドウに移動して変数resultを展開し、 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 に答える