【发布时间】:2013-11-02 23:50:48
【问题描述】:
我有一个方法。从硬盘中检索文件。我无法从单元测试中对此进行测试。它总是抛出异常无效的空路径或其他东西。如何测试。我暂时为单元测试创建了会话。但我不能为这个 Server.MapPath。该怎么做?
【问题讨论】:
-
你需要模拟服务器对象,This question 谈到了它,虽然这是针对 MVC 你应该仍然能够应用相同的逻辑。
-
你不能。静力学有点难以模拟。考虑更改需要来自 Server.MapPath 的值的原始代码以采用封装 Server.MapPath 的 Action 委托。然后在你的测试中你可以模拟这个。
-
是的,就像@MarvinSmit 所说,您需要转向依赖注入模式来实现这一目标
-
@JeevaJsb,我不知道我们可以说多少次,我会再写一遍,你需要模拟 Server.MapPath。要模拟它,您需要更改代码,因为您无法模拟静态方法。 Krzysztof Cieslak 在下面提供了一个答案,您需要按照该答案所说的去做,没有什么可以补充的。
标签: c# unit-testing