gpt4 book ai didi

c# - System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath 对于单元测试为 null

转载 作者:行者123 更新时间:2023-11-30 12:58:22 27 4
gpt4 key购买 nike

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

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

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

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

最佳答案

实现此目的的一种方法是将获取 ApplicationPhysicalPath 的责任移交给专用类,然后您将其提供给包含您的产品代码的类。

通过这种方式,您可以在进行单元测试时用模拟的等效项替换该依赖项。

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

关于c# - System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath 对于单元测试为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083783/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com