У меня есть следующий пример кода контроллера из хорошо известного источника:
public class HomeController : Controller
{
MyStoreEntities storeDB = new MyStoreEntities();
public ActionResult Index()
{
var albums = GetTopSellingAlbums(5);
return View(albums);
}
private List<Album> GetTopSellingAlbums(int count)
{
return storeDB.Albums
.OrderByDescending(a => a.OrderDetails.Count())
.Take(count)
.ToList();
}
}
Я хочу написать очень простой тест, чтобы проверить, что 5 альбомов возвращены методом Index ().
Я думал, что-то вроде этого может сделать это:
HomeController controller = new HomeController();
var result = controller.Index() as ViewResult;
var albums = (List<Album>)result.ViewData;
Assert.AreEqual(5, albums.Count);
Но значение модели .Count () всегда равно 0.
Во-первых, я что-то упустил - это возможно?
Во-вторых, я делаю это, чтобы выучить много принципов унаследованного кода. У меня есть этот код, который, я знаю, может быть серьезно улучшен. У него также нет тестов.
Я планирую покрыть существующий код тестами и серьезно его отредактировать.
Так что, пожалуйста, не отвечайте, например, «плохая практика» здесь или там, или реализуйте этот слой или этот шаблон и т. Д., Как это будет позже.
Просто самый простой способ проверить приведенный выше код действительно помог бы, пожалуйста:)
Возможно, даже хорошие блоги или книги также будут полезны.
Спасибо
Дэви