【发布时间】:2018-06-02 09:29:48
【问题描述】:
我正在开发一个尚未进行 DI 或单元测试的 asp.net mvc 应用程序。因此,我开始通过将应用程序拆分为 3 层来重组应用程序以进行单元测试:控制器 - 服务 - 数据访问。
一些控制器使用 Session 和 Cookie 来存储和检索值。所以我创建了一个接口和一个类来处理从 Session 和 Cookie 中保存和检索值。
我只是通过使用单元测试来做到这一点,从不运行应用程序。
由于应用程序没有 DI,因此我通过将控制器的 HttpContext 作为输入参数在控制器的构造器上创建了 ContextService。
但是,当我运行应用程序时,这些值没有被检索或保存在会话或 Cookie 中。似乎 HttpContext 在构造函数上为空。
问题 1: 我应该如何处理我的 ContextService。它应该使用静态属性 HttpContext.Current 来访问会话和 cookie(如何进行单元测试)还是...?
问题 2: 如果您知道另一种解决方案,应该如何适应它以便将来也有 DI。
【问题讨论】:
标签: c# asp.net-mvc dependency-injection httpcontext