在单元测试项目中使用Server.Mappath

我打算为Web api函数编写单元测试,该函数使用一行代码来使用Server.MapPath加载XML文件。

从UnitTest项目运行时,同样向我返回null。

解决此问题的一种方法是从控制器将文件名传递给函数,因此我可以在运行Web api项目时使用Context.Current,Server.MapPath,从单元测试运行时可以使用硬编码的文件路径,

还有什么其他方法可以让我对UnitTest和实际的Web api端点调用使用同一行代码

恩科西

Server.MapPath将需要一个基本的虚拟目录提供程序,而该虚拟目录提供程序在单元测试期间将不存在。将文件内容检索抽象到服务之后,您可以对其进行模拟以使代码可测试。

public interface IPathProvider {
    string MapPath(string path);
}

在具体服务的实现中,您可以调用以映射路径并检索文件。

public class ServerPathProvider: IPathProvider {
    public MapPath(string path) {
        return HttpContext.Current.Server.MapPath(path);
    }
}

在单元测试中,您可以模拟服务以返回测试所需的任何数据。

这是Moq的示例

//Arrange
var path = "~/resources/file.xml";
var expected = "My/Hard/Coded/File/Path/File.xml";
public mock = new Mock<IPathMapper>();
mock.Setup(m => m.MapPath(path)).Returns(expected);
IPathMapper mapper = mock.Object.
IMyFIleLoader loader = new MyFIleLoader(mapper);

//Act
var actual = loader.Load(path);

//Assert
mock.Verify(m => m.MapPath(path));
//...other code removed for brevity

这是使用假/测试类的示例

public class TestPathProvider : IPathProvider {
    public string MapPath(string path) {
        return Path.Combine(@"C:\project\",path);
    }
}

Server.MapPath的参考单元测试

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Server.MapPath的单元测试

来自分类Dev

如何对HttpContext.Current.Server.MapPath进行单元测试

来自分类Dev

如何对HttpContext.Current.Server.MapPath进行单元测试

来自分类Dev

如何避免出于单元测试目的使用HttpContext.Server.MapPath

来自分类Dev

无法使用Server.MapPath

来自分类Dev

ashx中的Server.MapPath?

来自分类Dev

WebMatrix-Server.MapPath问题

来自分类Dev

ashx中的Server.MapPath?

来自分类Dev

WebMatrix-Server.MapPath问题

来自分类Dev

在ASP.NET单元测试中模拟HttpContext.server.MapPath

来自分类Dev

如何使用Server.MapPath for Excel文件

来自分类Dev

Server.MapPath访问在Azure上被拒绝

来自分类Dev

Server.MapPath访问在Azure上被拒绝

来自分类Dev

如何获取方法单元测试中分配给受保护对象的HttpContext.Current.Server.MapPath的伪路径?

来自分类Dev

如何获取方法单元测试中分配给受保护对象的HttpContext.Current.Server.MapPath的伪路径?

来自分类Dev

.net WebApi-HttpContext.Current.Server.MapPath的值错误

来自分类Dev

Server.MapPath在Azure上找不到路径

来自分类Dev

ASP.NET Core 3.0 HttpContext.Current.Server.MapPath

来自分类Dev

远程服务器上的Server.MapPath

来自分类Dev

在与名称模式匹配的项目中使用mstest运行所有单元测试

来自分类Dev

how to get server.MapPath in asp.net core from inside a helper

来自分类Dev

如何从助手内部获取asp.net核心中的server.MapPath

来自分类Dev

Server.MapPath在当前上下文中不存在

来自分类Dev

为什么我的server.mappath()在另一台PC上不工作?

来自分类Dev

找不到路径的一部分:Server.mapPath

来自分类Dev

找不到路径的一部分:Server.mapPath

来自分类Dev

在ASP.NET MVC 5 Server.MapPath()中返回带有双反斜杠的路径

来自分类Dev

ASP.NET MVC 中带有查询字符串的 Server.MapPath

来自分类Dev

我可以在Visual Studio单元测试(类库)项目中使用Xamarin.Forms.DependencyService吗?

Related 相关文章

  1. 1

    Server.MapPath的单元测试

  2. 2

    如何对HttpContext.Current.Server.MapPath进行单元测试

  3. 3

    如何对HttpContext.Current.Server.MapPath进行单元测试

  4. 4

    如何避免出于单元测试目的使用HttpContext.Server.MapPath

  5. 5

    无法使用Server.MapPath

  6. 6

    ashx中的Server.MapPath?

  7. 7

    WebMatrix-Server.MapPath问题

  8. 8

    ashx中的Server.MapPath?

  9. 9

    WebMatrix-Server.MapPath问题

  10. 10

    在ASP.NET单元测试中模拟HttpContext.server.MapPath

  11. 11

    如何使用Server.MapPath for Excel文件

  12. 12

    Server.MapPath访问在Azure上被拒绝

  13. 13

    Server.MapPath访问在Azure上被拒绝

  14. 14

    如何获取方法单元测试中分配给受保护对象的HttpContext.Current.Server.MapPath的伪路径?

  15. 15

    如何获取方法单元测试中分配给受保护对象的HttpContext.Current.Server.MapPath的伪路径?

  16. 16

    .net WebApi-HttpContext.Current.Server.MapPath的值错误

  17. 17

    Server.MapPath在Azure上找不到路径

  18. 18

    ASP.NET Core 3.0 HttpContext.Current.Server.MapPath

  19. 19

    远程服务器上的Server.MapPath

  20. 20

    在与名称模式匹配的项目中使用mstest运行所有单元测试

  21. 21

    how to get server.MapPath in asp.net core from inside a helper

  22. 22

    如何从助手内部获取asp.net核心中的server.MapPath

  23. 23

    Server.MapPath在当前上下文中不存在

  24. 24

    为什么我的server.mappath()在另一台PC上不工作?

  25. 25

    找不到路径的一部分:Server.mapPath

  26. 26

    找不到路径的一部分:Server.mapPath

  27. 27

    在ASP.NET MVC 5 Server.MapPath()中返回带有双反斜杠的路径

  28. 28

    ASP.NET MVC 中带有查询字符串的 Server.MapPath

  29. 29

    我可以在Visual Studio单元测试(类库)项目中使用Xamarin.Forms.DependencyService吗?

热门标签

归档