【发布时间】:2016-09-28 04:44:49
【问题描述】:
我打算为一个 web api 函数编写单元测试,该函数使用一行代码使用 Server.MapPath 加载 XML 文件
从 UnitTest 项目运行时,同样返回 null 给我。
这个问题的一个解决方案是将文件名从控制器传递给函数所以我可以在运行 web api 项目时使用 Context.Current,Server.MapPath 并且在从单元测试运行时我可以使用硬编码的文件路径,
有没有其他方法可以让我对 UnitTest 和实际的 Web api 端点调用使用同一行代码
【问题讨论】:
-
Server.MapPath需要一个在单元测试期间不存在的底层虚拟目录提供程序。抽象服务背后的文件内容检索,您可以模拟该服务以使代码可测试。在具体服务的实现中,您可以调用映射路径并检索文件。在单元测试中,您可以模拟服务以返回测试所需的任何数据。
标签: c# unit-testing asp.net-web-api