У меня есть контроллер в ASP.NET MVC 6.Как протестировать контроллер?
public class VendorManagementController : Controller
{
private readonly IVendorRespository _vendorRespository;
public VendorManagementController(IVendorRespository vendorRespository)
{
_vendorRespository = vendorRespository;
}
[Microsoft.AspNet.Mvc.HttpGet]
public dynamic GetVendorById(int pkey)
{
Vendor vendor = _vendorRespository.GetVendor(pkey);
return vendor;
}
// GET
// USing JqGrid
[Microsoft.AspNet.Mvc.HttpGet]
public dynamic GetVendors(string sidx, string sortOrder, int page, int rows, int pkey)
{
var vendors = _vendorRespository.GetAllVendors().AsQueryable();
var pageIndex = Convert.ToInt32(page) - 1;
var pageSize = rows;
var totalRecords = vendors.Count();
var totalPages = (int)Math.Ceiling((float)totalRecords/(float)pageSize);
return something
}
// POST
[System.Web.Http.HttpPost]
public string PostVendor(Vendor item)
{
_vendorRespository.AddVendor(item);
}
link представляет собой пример для тестирования контроллера, но он использует HttpRequestMessage
. Это не соответствует моему делу.
Так что, если я хочу протестировать возвращение поставщиков, как? Скажем, у меня есть метод:
[Fact]
public void GetAllVendors_ShouldReturnAllVendors()
{
var testVendors = GetTestVendors();
var vendorRespository = new VendorRespository();
var controller = new VendorManagementController(vendorRespository);
}
Дело в том,
var vendors = _vendorRespository.GetAllVendors().AsQueryable();
из Databse, как макет это с моими поддельными продавцами?
EDIT:
Метод возвращает динамический тип, я не могу получить граф списка.
'controller.GetVendors()'? Мне немного непонятно, что именно вы спрашиваете. – CodeCaster
@CodeCaster, no.Этот метод требует много параметров. Нужно их издеваться? –
** Что вы хотите проверить? Если вы хотите проверить, что возвращает этот метод действия, вы должны его вызвать. Вы издеваетесь над зависимостями, такими как репозиторий, поэтому вы можете убедиться, что метод действия вызывает соответствующий метод в репозитории. – CodeCaster