ユニットテストとMVC 3での作業方法を学習しようとしていますが、2つのモデルをテストするにはどのように問題がありますか。ここでは、コードTDDとMVC 3、テストモデル
public class HomeController : Controller
{
private IRepository _repository;
public HomeController(IRepository repository)
{
_repository = repository;
}
//
// GET: /Home/
public ActionResult Index()
{
return View(_repository.GetAllGenres());
}
}
public interface IRepository
{
IEnumerable<Genre> GetAllGenres();
IEnumerable<Album> GetTopAlbums(int count);
}
で、今、私の質問は、私は私が仕事をしたいのようなものを作って行くにはどうすればよいですまさにこれが私のユニットテスト
[TestFixture]
class HomeControllerTests
{
[Test]
public void Test1()
{
//Arrange
var controller = new HomeController(new InMemoryRepository());
var result = (ViewResult) controller.Index();
Assert.AreEqual(10,((IEnumerable<Genre>)result.ViewData.Model).Count());
}
[Test]
public void Test2()
{
var controller = new HomeController(new InMemoryRepository());
var result = (ViewResult) controller.Index();
//I Want to be able to do something like this
Assert.AreEqual(5,result.ViewData.Model.GetTopAlbums(5).Count);
}
}
であると仮定します。または、トップアルバムを返すChildActionOnlyメソッドを作成しますか?