0

私はhanselman の記事を確認しており、次のコードがどのように機能するかを深く学びたいと思っています。ジェネリックと拡張メソッドのように見えますか? 次のコードを本当に理解するために、他に知っておくべきテーマは何ですか。この記事で言及されているコード ベース全体を理解するには、どのような種類の主題 (ジェネリック、拡張メソッドなど) を知る必要がありますか。ありがとう

   public static HttpContextBase FakeHttpContext()
    {
        var context = new Mock<HttpContextBase>();
        var request = new Mock<HttpRequestBase>();
        var response = new Mock<HttpResponseBase>();
        var session = new Mock<HttpSessionStateBase>();
        var server = new Mock<HttpServerUtilityBase>();

        context.Setup(ctx => ctx.Request).Returns(request.Object);
        context.Setup(ctx => ctx.Response).Returns(response.Object);
        context.Setup(ctx => ctx.Session).Returns(session.Object);
        context.Setup(ctx => ctx.Server).Returns(server.Object);

        return context.Object;
    }
4

2 に答える 2

3

その記事には良いことがたくさんありますが、あなたの質問に答える方法を知るのはちょっと難しいです. あなたが言うように、ジェネリック拡張メソッドラムダ式が使用されています。舞台裏では、そのモッキング ライブラリ ( moq )で何らかのリフレクションが行われているはずです。テスト。したがって、これらすべてを読み進める価値はあります。

この記事は最終的に単体テストに関するものなので、単体テストとは何か、なぜそれが良いのかなどを理解することは役に立ちます - Pragmatic Unit Testingはそのトピックの入門書として素晴らしい本です。次に、全体的なテスト駆動開発アプローチがあります。最初にテストを作成し、それに沿ってテストを修正して、それについても読むことができます (ただし、試してみて、うまくいくかどうかを確認してください)。

ですから、試して、使って、楽しんでください。

于 2012-05-03T16:09:05.720 に答える
0

また、ラムダ式も使用します。

ご存じないかもしれませんが、彼は Moq と呼ばれるモック ライブラリを使用しているので、そのホームページにアクセスして詳細をお読みください。

于 2012-05-03T16:06:06.487 に答える