Тестирование десериализации RestSharp без надлежащего REST-Api - PullRequest
4 голосов
/ 17 января 2012

РЕДАКТИРОВАТЬ: Решение вопроса можно найти в первом комментарии Джона Шихана!

Я хотел бы использовать Restsharp в качестве Rest-Client для моего проекта. Поскольку сервер REST еще не запущен, я хотел бы протестировать клиент без сервера. Мое основное внимание уделяется десериализации возвращаемого XML-ответа. Можно ли десериализовать XML с помощью RestSharp без надлежащего RestSharp.RestResponse?

Я попробовал это так:

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; }
}

Десериализация создает объект класса ответа, где каждое поле равно нулю. Есть ли способ проверить, будет ли (и как) любой данный xml десериализирован RestSharp?

Редактировать: Для лучшей читаемости - это XML, который я использую:

<Response>
    <Item1>Some text</Item1>
    <Item2>Another text</Item2>
    <Item3>Even more text</Item3>
</Response>

1 Ответ

6 голосов
/ 18 января 2012

Я надеюсь, что я делаю это правильно - но чтобы прояснить, этот вопрос решен, я копирую решения (из комментариев Джона Шихана):

Вам не нужно указывать RootElement. Это только когда корень не на верхнем уровне. Попробуйте и дайте мне знать, если это работает. Вот как мы тестируем десериализатор для проекта: https://github.com/restsharp/RestSharp/blob/master/RestSharp.Tests/XmlDeserializerTests.cs

(РЕДАКТИРОВАТЬ: обновленная ссылка на правильный файл)

...