在没有适当REST Api的情况下测试RestSharp的反序列化
本文关键字:情况下 测试 RestSharp 反序列化 Api REST | 更新日期: 2023-09-27 18:20:37
编辑:问题的解决方案可以在John Sheehan的第一条评论中找到!
我想使用Restsharp作为我的项目的休息客户。由于REST服务器还没有运行,我想在没有服务器的情况下测试客户端。我的主要关注点是对返回的XML响应进行反序列化。是否可以在没有适当的RestSharp.RestResponse的情况下使用RestSharp反序列化XML?
我这样试过:
public void testDeserialization()
{
XmlDeserializer d = new XmlDeserializer();
RestSharp.RestResponse response = new RestSharp.RestResponse();
string XML = @"<Response><Item1>Some text</Item1><Item2>Another text</Item2><Item3>Even more text</Item3></Response>";
response.Content = XML;
d.RootElement = "Response";
Response r = d.Deserialize<Response>(response);
}
public class Response
{
public string Item1 { get; set; }
public string Item2 { get; set; }
public string Item3 { get; set; }
}
反序列化创建响应类的对象,其中每个字段都为null。有没有一种方法可以测试RestSharp是否(以及如何)反序列化任何给定的xml?
编辑:为了更好的可读性-这是我正在使用的XML:
<Response>
<Item1>Some text</Item1>
<Item2>Another text</Item2>
<Item3>Even more text</Item3>
</Response>
我希望我做得对,但为了明确这个问题已经解决,我正在复制解决方案(来自John Sheehan的评论):
您不应该指定RootElement。只有当root不在顶级。试试看,让我知道它是否有效。以下是我们如何测试项目的反序列化程序:https://github.com/restsharp/RestSharp/blob/master/RestSharp.Tests/XmlDeserializerTests.cs
(编辑:更新到正确文件的链接)