2009-12-01 2 views
1

의 인터페이스 계약 VS2010 Beta 2에서 사용할 수있는 코드 계약 도구를 사용하여 인터페이스, 해당 인터페이스의 계약 클래스 및 인터페이스를 구현하는 두 클래스를 정의했습니다.유닛 테스트 C#

이제 코드를 테스트 할 때 구현 클래스를 테스트하여 해당 기능이 정확하고 계약 코드를 테스트하여 내 조건이 올바른지 알고 싶습니다.

2 가지 구현 클래스 각각에서 각 계약서를 테스트 할 수는 있지만 분명히 중복됩니다. 이 구현 클래스 중 하나에 테스트를 작성할 수는 있지만 그 중 하나를 선택하는 방법, 계약 변경시 업데이트 할 것을 기억하는 방법 등 약간 잘못되었습니다.

실제 데이터를 테스트하고 싶습니다. 인터페이스 계약 클래스에서 테스트하지만 테스트하려는 인터페이스 메소드가 인터페이스 계약 클래스에서 사용할 수없는 모든 종류의 컴파일 시간 경고를 가져옵니다. 나는 실제로 ILDASM에서 볼 수있는 구현 클래스에 계약 코드를 주입하는 사후 편집 마법이 있다는 것을 알고 있지만 인터페이스 계약 클래스 메소드를 검사 할 때 MISL에는 있지만 비어 있습니다.

내가 누락되었거나 내가하고 싶은 일을 할 수 없습니다. 그렇지 않은 경우,이를위한 "모범 사례"는 무엇입니까? 여기

=== 편집 ===

한 가지 제안은 그 목적 인터페이스 계약을 테스트하기 위해 전적으로입니다 (테스트 어셈블리 내부) 클래스에서 인터페이스를 구현하는 것입니다, 합리적인 소리?

답변

1

계약 테스트는 단위 테스트를 단위 테스트하는 것과 같습니다. 테스트 등을 위해 테스트를해야하기 때문에 그렇게하지 않습니다.

+0

나는 똑같은 계약 성명서에 동의하지만, 객체 불변 식에 비즈니스 규칙을 포착하는 경우, 이것을 테스트 할 수 있습니까? –