I가 잘 인식 소스에서 다음 샘플 컨트롤러 코드 :간단한 MVC ASP.Net 테스트
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 앨범 (색인에서 반환되는 것을 확인하는 아주 간단한 테스트를 작성 할) 방법 .
은 내가 그것을 할 수 같은 것을 같은 것을 생각 :HomeController controller = new HomeController();
var result = controller.Index() as ViewResult;
var albums = (List<Album>)result.ViewData;
Assert.AreEqual(5, albums.Count);
그러나 model.Count의 값은() 나는 실종, 첫째로 항상 뭔가 0
- 그것은 가능하다 ?
두 번째로, 나는 레거시 코드에 관한 많은 원칙을 배우기 위해이 작업을 수행하고 있습니다. 나는이 코드를 가지고있다. 나는이 코드를 심각하게 개선 할 수있다. 또한 테스트가 없습니다.
내 계획은 기존 코드를 테스트로 처리하고 심각하게 수정하는 것입니다.
그래서 여기에 '나쁜 습관'같은 응답이 없거나이 레이어 나 그 패턴 등이 나중에 구현 될 것이라고 구현하지 마십시오. 정말
이 어쩌면 좋은 블로그 나 책도 도움이 될 것입니다 :)하시기 바랍니다 도움이 될 것이다 위의 코드를 테스트그냥 간단한 방법.
감사
데비
데이터베이스에 앨범 데이터가 있습니까? 테스트와 동일한 DB에 연결되어있을 때 컨트롤러가 속한 웹 사이트에 데이터가 표시됩니까? 테스트와 웹 사이트에서 동일한 db 연결 문자열을 사용합니까? – k3b