Подтвердить что ты не робот

Как получить объект из метода HttpActionResult Ok (Web Api)?

Я изучаю основы Web Api, и я хочу вернуться и передать объект Ok(object). Что-то вроде этого:

[HttpGet]
public IHttpActionResult Get()
{
    var someString = "";
    return Ok(someString);
}

Теперь я хочу протестировать этот метод и утверждать, что возвращаемая строка из этого метода Get() совпадает с ожидаемым. Я думаю, будет выглядеть примерно так:

[TestMethod]
public void TestGet()
{
    IHttpActionResult result = controller.Get();
    Assert.AreEqual("", result.??);
}

Я видел этот вопрос, но лучший ответ объясняет, как проверить HttpStatusCode, а не переданный объект.

4b9b3361

Ответ 1

Вы можете получить доступ к возвращенной строке, выполнив результат до OkNegotiatedContentResult<string> и получив доступ к свойству Content.

[TestMethod]
public void TestGet()
{
    IHttpActionResult actionResult = controller.Get();
    var contentResult = actionResult as OkNegotiatedContentResult<string>;
    Assert.AreEqual("", contentResult.Content);
}

Пример кода из: http://www.asp.net/web-api/overview/testing-and-debugging/unit-testing-controllers-in-web-api