"테스트 지루 때까지"라고되고 그건
, 통합 테스트를 통해 시험의 대부분을 수행 조심. 즉, 한 번에 한 가지씩 테스트하십시오. 예를 들면. 당신은
- 컨트롤러 로직
- 라우팅 로직
- 데이터베이스
- 로드 방법
- 조회수
하지만 같은 시험에서 2 개 이상을 테스트하지 않는 시험에 관심이있을 수 있습니다 . 컨트롤러 로직을 테스트하는 경우 사용중인 데이터 객체를 전달하거나 조롱하십시오.
그렇다면이 부분을 테스트하는 방법에 관심이있을 것입니다. 나는 아래의 3 개 부분 (데이터베이스로드 기능, 뷰)를 다룰 것이다
데이터베이스 당신이 연결되어있는 데이터베이스
- 에서 테스트 할 필요가 정말로 단지 2 가지가
?
- 는 데이터베이스의 메타 데이터를 테스트하는 방법에는 여러 가지가 연결을 위해
올바른 스키마, 나는 에코 테스트
Assert.AreEqual(42, QuerySingleResult("Select 42"));
을 선호입니다,하지만 당신이 버전 번호가있는 경우 저장되는 , 당신은 단순히 그것을 테스트 할 수 있습니다. 또한 경로를 쉽게 업그레이드 할 수 있습니다.
Assert.AreEqual(6, QuerySingleResult("Select version From Schema"));
로드 기능 로딩 기능을 테스트하는 방법에는 여러 가지가 있습니다
은 (내가 여기에 간단한 보여주지)하지만 그들은 모두 함수로로드를 분리에 따라 달라집니다.
테스트 LINQ는에 ...의 당신이 지금 테스트하기 쉬운이 개 기능
IEnumerable<People> LoadPeople()
{
return LoadPeople(new EntityFrameworkContext().People);
}
IEnumerable<People> LoadPeople(IEnumerable<People> fromPeople)
{
return From db in fromPeople Where ...... Select ....
}
로이 분할 경우
var people = From db in new EntityFrameworkContext().People Where ...... Select ....
있다고 가정 해 봅시다 . 뷰 테스트하기 쉬운 반면
조회수
, 많은 세부 사항이있다. 나는 모든 것을 비디오에 당신을 참조 것 : http://www.youtube.com/watch?v=SttlPzwJw3U
하지만이 개 중요한 부분
1
) 시험
MvcApprovals.VerifyMvcPage(new YourController().YourTestAction
2) 컨트롤러에서 테스트 솔기이다
public ActionResult YourTestAction()
{
// setup your model
return View("viewpage", model);
}
해피 테스트!