Ответ 1
Try:
result.ViewData.Model
Надеюсь, что это поможет.
Учитывая следующий класс контроллера:
public class ProjectController : Controller
{
public ActionResult List()
{
return View(new List<string>());
}
}
Как я могу получить ссылку на объект модели в следующем unit test?
public class ProjectControllerTests
{
private readonly ProjectController controller;
public ProjectControllerTests()
{
controller = new ProjectController();
}
[Fact]
public void List_Action_Provides_ProjectCollection()
{
var result = (ViewResult)controller.List();
Assert.NotNull(result);
}
}
Я попытался вмешаться в действие контроллера, чтобы увидеть, какие внутренние поля были установлены, но не повезло.
Мои знания ASP.NET MVC довольно ограничены, но я предполагаю, что я не настраиваю контроллер с правильным контекстом.
Любые предложения?
Try:
result.ViewData.Model
Надеюсь, что это поможет.
В версии Release Candidate структуры Asp.Net Mvc модель предоставляется через свойство "Модель" объекта ViewResult. Вот более точная версия вашего теста:
[Fact]
public void List_Action_Provides_ProjectCollection()
{
//act
var result = controller.List();
//assert
var viewresult = Assert.IsType<ViewResult>(result);
Assert.NotNull(result.ViewData.Model);
Assert.IsType<List<string>>(result.ViewData.Model);
}