2010-12-11 6 views
0

Visual Studio 2008을 사용하는 C# 3.5 프로젝트에서 작업 중입니다. 여러 객체를 직렬화해야하며 (IXmlSerializable을 구현해야합니다). 직렬화 코드에 대한 단위 테스트를 작성하는 동안 serialize 할 수있는 개체에 새 속성을 추가 할 때 새로운 속성의 serialize 및 deserialize가 테스트되지 않는 경우 알림이 표시됩니다. 단위 테스트. (일부 단위 테스트 실패)Visual Studio 유닛 테스트 프레임 워크를 사용하여 유닛 테스트를 강제로 수행 할 수 있습니까?

이것이 가능합니까? 내 속성을 표시 할 수있는 특수한 특성이 있으면 Visual Studio unit 테스트 프레임 워크에서 테스트해야한다는 것을 알 수 있다고 생각합니다.

아니면이 완전히 떨어져 기지 내 접근인가? 필요한 경우 다른 단위 테스트 프레임 워크로 전환 할 수 있습니다.

+0

어떤 직렬화 전략을 사용하고 있습니까? – Marco

+0

개체가 IXmlSerializable을 구현합니다. –

+0

이러한 변경 사항을 사용자에게 알려야하는 이유는 무엇입니까? 속성을 추가하는 것이 왜 문제가됩니까? – Steven

답변

0

리플렉션을 사용하여 개체의 모든 속성을 고유 값으로 채우고 직렬화, 역 직렬화하고 초기 개체를 비 직렬화 된 개체와 비교하는 직렬화 테스트 집합을 작성하려고합니다. 물론 수업에서 평범하지 않은 유효성 검사가 있으면 문제가 될 수 있습니다. 반면에 알려지지 않은 속성에 대해 알려진 속성 및 임의 항목에 대해 알려진 값을 사용할 수 있습니다.이 속성은 중요하지 않은 새 속성에 대해서는 실패합니다. 이 방법은 새 속성을 추가 한 후에 직렬화가 작동하는지 테스트합니다 (실제 목적은 무엇입니까?).

위의 옵션을 사용할 수없는 경우 (보통 XML 형식 임) 보고서를 생성 한 다음 간단한 도구를 작성하여 클래스가 완전히 테스트되었는지 확인하십시오. 이 작업을 수행하는 것이 정말 어려울 것이라고 생각하며 노력할만한 가치가 있는지 확신 할 수 없습니다. 내가 아는 한 속성이 호출되었는지 확인하는 더 좋은 방법은 없습니다.

관련 문제