在构造函数中访问 HttpContext 以获取假 DI

我正在开发一个还没有 DI 或单元测试的 asp.net mvc 应用程序。因此,我开始通过将应用程序拆分为 3 层来重构应用程序以进行单元测试:控制器 - 服务 - 数据访问。

一些控制器使用 Session 和 Cookies 来存储和检索值。所以我创建了一个接口和一个类来处理从 Session 和 Cookies 中保存和检索值。

我只是通过使用单元测试来做到这一点,从未运行过应用程序。

由于应用程序没有 DI,我在控制器的构造函数上创建了 ContextService,方法是将控制器的 HttpContext 作为输入参数。

但是,当我运行应用程序时,这些值没有被检索或保存在 Session 或 Cookies 中。构造函数上的 HttpContext 似乎为空。

问题 1:我应该如何处理我的 ContextService。它应该使用静态属性 HttpContext.Current 来访问会话和 cookie(它将如何进行单元测试)还是......?

问题 2:如果您知道另一种解决方案,它应该如何适应以便将来也有 DI。


慕盖茨4494581
浏览 206回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP