需要更好地理解FakeHttpContext

本文关键字:FakeHttpContext 更好 | 更新日期: 2023-09-27 18:33:09

我一直在回顾 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;
    }

需要更好地理解FakeHttpContext

那篇文章中有很多好东西,但很难知道如何回答你的问题。 正如您所说,使用了泛型、扩展方法、lambda 表达式,在幕后肯定会在那个模拟库 (moq) 中进行一些反思,并且您肯定会在某个时候遇到 linq 扩展当你开始编写测试时。 因此,所有这些可能都值得一读。

这篇文章是关于单元测试的,

最终,所以了解单元测试是什么,为什么它是好的等将是有用的 - Pragmatic Unit Test是一本很好的书,作为该主题的介绍。 然后是整个测试驱动开发方法,你首先编写测试并修复它们,这样你也可以阅读它(尽管我会说只是尝试一下,看看你是如何进行的)。

所以,尝试一下,使用它,玩得开心,你会在旅途中学到你需要知道的东西。

它还使用 lambda 表达式。

如果你不知道,他正在使用一个名为Moq的模拟库,所以你也应该去它的主页并阅读更多关于它的信息。