单元测试

时间:2015-05-06 17:34:54

标签: c# unit-testing asp.net-web-api

我的产品代码中有这段代码。

string cwd = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
Directory.SetCurrentDirectory(cwd);

当我尝试在UnitTest中执行此逻辑时,我得到NullReferenceException,因为cwd为null。

有人可以帮助我对我的产品代码进行哪些更改以使其可以进行单元测试?

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是将ApplicationPhysicalPath的责任转移到专用类,然后将其提供给包含产品代码的类。

这样,当您进行单元测试时,可以用模拟的等效项替换该依赖项。

这种方法是Dependency Injection / Inversion of Control软件工程模式的重要组成部分。