Как получить объект из метода 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
, а не переданный объект.
Ответы
Ответ 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