0

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

该服务执行以下操作:

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

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

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

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

例如:

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

我收到一条错误消息,提示“URI 格式不正确”。

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

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

4

2 回答 2

0

使用该file:方案和输出目录的完全限定路径,该路径应该与运行测试的路径相同。

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

有关详细信息,请参阅http://en.wikipedia.org/wiki/File_URI_scheme 。

于 2013-01-15T05:01:30.300 回答
0

@RPM1984 的提示给出了答案。我刚刚遇到了这个问题,下面的 hack 为我做了:

string fqnModified = "\\" + fqn;
Uri uri = new Uri(fqnModified);
于 2014-01-26T02:39:05.367 回答