我有一个从外部API解析JSON的服务。
此服务执行以下操作:
我正在尝试对步骤1-4进行单元测试(5超出了此测试的范围)。
因此,我不想访问web api - 而是我在我的测试项目中本地存储了一个“示例”JSON文件。
如何阅读此文件并将其构建为Uri对象?
e.g:
var uri = new Uri("myfile.json");
我收到一条错误消息,说“URI格式不正确”。
该文件设置为Build Action:Embedded Resource,Copy to Output Directory:Copy always。
我正在使用C#.NET 4.5(VS 2012),并使用XUnit进行测试。
答案 0 :(得分:0)
使用file:
方案和输出目录的完全限定路径,该路径应与运行测试的路径相同。
var fqn = Assembly.GetExecutingAssembly().Location;
var uri = new Uri("file://" + fqn + "/myfile.json");
有关详细信息,请参阅http://en.wikipedia.org/wiki/File_URI_scheme。
答案 1 :(得分:0)
@ RPM1984的提示暗示了答案。我刚遇到这个问题,下面的黑客为我做了这个:
string fqnModified = "\\" + fqn;
Uri uri = new Uri(fqnModified);