Cześć jak poprawnie testować ten kontroler ?
private IUserService userService;
private ICategoryService categoryService;
private IPostService postService;
public HomeController(IUserService _userService, ICategoryService _categoryService, IPostService _postService)
{
userService = _userService;
categoryService = _categoryService;
postService = _postService;
}
public ViewResult Index()
{
var list = categoryService.GetAllHomeCategory();
return View(list);
}
public PartialViewResult NewsPosts(int CategoryId)
{
var list = postService.GetNewsPostsByCategoryId(CategoryId);
return PartialView("_NewsPosts",list);
}
Dobrze probuje pisząc ten test tak ?
[Test]
public void Return_Home_Index()
{
var mockCtx = new Mock<ICategoryService>();
mockCtx.Setup(m => m.GetAllHomeCategory()).Returns(new List<HomeCategoryViewModel>
{
new HomeCategoryViewModel() { CategoryId = 1, Name = "P1"},
new HomeCategoryViewModel() { CategoryId = 2, Name = "P2"}
});
var controller = new HomeController(null,mockCtx.Object,null);
var result = controller.Index() as ViewResult;
var list = (List<HomeCategoryViewModel>)result.ViewData.Model;
Assert.AreEqual(list[0].Name, "P1");
}