1

实际上,当从单元测试项目执行以下代码时,我得到了错误...其中 import 是以下代码中的 xml 文件。

XmlTextReader importReader= new XmlTextReader(System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Importcontent/import"));

上述代码存在于不同项目(类库)中的一种方法中,该方法用于单元测试项目中的测试方法

上面的路径存在于 web 项目中。和价值

System.Web.Hosting.HostingEnvironment.MapPath("~/Content/Importcontent/import")

是空的..即无法获得文件的完整路径我猜bcos托管环境没有运行(网络项目)上面的代码在从网络项目运行时工作正常,即它返回确切的路径。而从测试项目运行时返回空值。

从测试项目运行时,请让我知道如何获取文件路径(Web 项目中存在文件的位置)。

4

1 回答 1

1

您可以将文件名作为参数传递给方法,而不是让方法尝试检索它:

public void SomeMethod(string filename)
{
    using (XmlTextReader importReader = new XmlTextReader(filename))
    {
        ...
    }
}

现在,当从您的 Web 层(控制器)调用此方法时,您可以像这样传递文件名:

public ActionResult Index()
{
    string filename = Server.MapPath("~/Content/Importcontent/import");
    SomeMethod(filename);
    ...
}

并且当在测试项目中时,您可以传递一些您在单元测试中部署的其他文件。

于 2012-05-30T07:08:10.563 回答