2009-07-17 3 views
3

모델 바인딩을 다루는 단위 테스트가 있습니다. ModelBindingContext를 만들고 ValueProviderDictionary를 테스트 값으로 채 웁니다. 일단 컨트롤러가 모델을 얻으면 모든 것이 테스트로 덮여 있고 올바른 일이 일어나고 있다고 확신합니다. 또한 BindingContext가 맞으면 내 모델이 올바르게 바인딩됩니다. 내가 확신하지 못하는 것은 내 View가 다시 게시 될 때 BindingContext를 올바르게 채울 것이라는 것입니다.ASP.NET MVC - 모델 바인딩 페이지 테스트

양식을 채우고 다시 게시하고 결과보기를 확인하는 WatiN 테스트를 작성하기 시작했습니다. 이것은 괜찮지 만 매우 간접적 인 것처럼 보입니다. 예를 들어 제출을 클릭하면 "주문이 저장되었습니다"라는 페이지가 나타납니다. 데이터베이스에 올바르게 저장되었는지 확인해야합니다. 컨트롤러에 전달 된 모델이 x 일 때 y가 데이터베이스에 저장 될 때 이미 테스트를 수행했습니다. 뷰 테스트에서이 코드를 반복하는 이유는 무엇입니까?

정말로 원하는 것은 뷰를 채우고 제출을 누르고 (a) BindingContext 또는 (b) ModelBinder에서 반환 된 모델을 확인하는 것입니다.

이 작업을 수행하는 방법에 관행이 있습니까?


WatiN 테스트 이외에도 추가하고 싶습니다. 나는 지금 WatiN 테스트를 ~ 50 개 더하고 (추가 할 것이 많음) WatiN없이 위의 작업을 수행 할 수 있다면 테스트를 한 번만 제거하면됩니다. WatiN을 계속 사용하겠습니다.하지만 몇 가지 테스트를 위해 지금 당황하고 있다고 생각합니다.

답변

0

보기가 프레임 워크 규칙을 준수하지 못하는 경우에만 모델 바인딩이 실패합니다. 그 일의 첫 번째 징후는 당신의 견해가 예상 된 결과를 보여주지 않을 때입니다. 다음은 WatiN 테스트가 게시물에서 실패 할 때입니다.

기술적으로 예, 이것은 간접 테스트이지만 가장 실용적인 테스트이기도합니다. 다른 견해로는 모든 견해가 협약을 준수하고 있음을 확인하는 것 이외에 관례를 준수한다는 것을 어떻게 검증 할 것입니까?