首先,我知道这个问题非常接近: How to MapPath in a unit test in C#
但是,我希望它有不同的解决方案。我的问题如下:
在我的代码中,我有一个需要验证的对象。我正在为每种验证方法创建单元测试,以确保它正确验证。我正在创建模拟数据并将其加载到对象中,然后对其进行验证。问题是在验证中,当发生错误时,会分配一个错误代码。此错误代码用于使用 Server.MapPath 从 xml 文件中收集有关错误的信息。但是,当尝试获取 xml 文件时,会引发异常,这意味着无法找到该文件。
由于 MapPath 在我的验证代码中,而不是在我的单元测试中,我如何让我的单元测试识别路径?这个问题有意义吗?
错误行(在我的验证代码中不是我的单元测试):
XDocument xdoc = XDocument.Load(HttpContext.Current.Server.MapPath("App_Data/ErrorCodes.xml"));
简化:单元测试在我的程序中调用一个方法,该方法调用 Server.MapPath,然后失败。