繁体   English   中英

单元测试-为项目中的本地文件构造URI

[英]Unit Test - Construct URI for local file in project

我有一个从外部API解析JSON的服务。

该服务执行以下操作:

  1. 构造API的URI
  2. 读取返回的JSON
  3. 反序列化为相关的C#对象
  4. 映射到我的域实体
  5. 保存到数据库

我正在尝试对第1-4步进行单元测试(第5步超出了此测试的范围)。

因此,我不想使用网络api-而是在测试项目中本地存储了一个“示例” JSON文件。

我如何读取此文件并将其构造为Uri对象?

例如:

var uri = new Uri("myfile.json");

我收到一个错误消息:“ URI格式不正确”。

该文件设置为“构建操作:嵌入式资源”,并设置为“复制到输出目录:始终复制”。

我在C#.NET 4.5(VS 2012)上,并使用XUnit进行测试。

使用file:方案和输出目录的标准路径,该路径应与测试运行所在的路径相同。

var fqn = Assembly.GetExecutingAssembly().Location;
var uri = new Uri("file://" + fqn + "/myfile.json");

有关更多详细信息,请参见http://en.wikipedia.org/wiki/File_URI_scheme

@ RPM1984的提示提供了答案。 我只是遇到了这个问题,下面的hack为我做到了:

string fqnModified = "\\" + fqn;
Uri uri = new Uri(fqnModified);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM