2012-12-07 3 views
1

생성 한 XML 문서의 내용을 확인해야합니다. 문서의 내용을 쉽게 추출하고 유효성을 검사하는 데 도움이되는 프레임 워크가 있습니까?MSTest 용 XML 단위 테스트 프레임 워크

일이 우리가

  • 이 요소의 요소 X
  • 값을 포함 알 필요가 X
  • 요소는 X 그것은 '아무튼

z 값과 속성 Y를

  • 예상치 못한 요소 포함 어설 션이 없다면 MSTest를 통해 수행 할 수 있습니다.

  • +0

    xml에 대한 xsd가 있습니까? –

    +0

    xsd를 사용하지 않는 것이 좋습니다. 현재 기본값으로 속성을 포함시키기 위해 약간의 후 처리 작업을해야합니다. 오히려 문서를 쿼리 할 수있는 무언가를 원합니다. 어쩌면 XML을 기반으로 도우미에게 linq 일부 –

    +0

    내가 xsd에 대해 물어 유일한 이유는 쉽게 POCO 코드를 생성 할 수 있습니다. Xml을 객체로 직렬화 해제하면 내용을 확인하는 것이 간단합니다. deserialization의 바로 그 행위는 형식을 확인하는데 도움을 줄 것입니다. –

    답변

    6

    Fluent Assertions 라이브러리 문서를 보시려면 여기를 클릭하십시오 : http://fluentassertions.codeplex.com/documentation

    "XML 클래스"라는 제목의 섹션은 사용자가 좋아하는 것과 같습니다. 이 코드는 LINQ-to-XML을 사용합니다.

    xDocument.Should().HaveRoot("configuration"); 
    xDocument.Should().HaveElement("settings"); 
    
    xElement.Should().HaveAttribute("age", "36"); 
    xElement.Should().HaveElement("address"); 
    
    xAttribute.Should().HaveValue("Amsterdam"); 
    

    현재 nuget에서 FluentAssertions를 설치할 수 있습니다 http://nuget.org/packages/FluentAssertions

    +0

    정확히 내가 뭘했는지 알 수 있습니다. 시도 해봐야 할 것입니다. –

    1

    당신은 또한 당신의 XML에 대해 가지고있는 XSD 파일에서 C#을 엔티티를 생성하기 위해 (VS 포함) xsd.exe 같은 도구를 사용할 수 있습니다.

    개체가 생성되면 XmlSerializer의 인스턴스를 사용하여 XML을 deserialize 할 수 있습니다. XML을 비 직렬화 할 수없는 경우 잘못된 XML이 있음을 매우 빨리 알 수 있습니다.

    그런 다음에는 비 직렬화 엔터티의 다양한 속성을 사용하여 XML의 내용을 매우 쉽게 검증 할 수 있어야합니다.

    Here is a good starter blog post XSD에서 엔티티 개체를 생성하는 방법과 XmlSerializer를 사용하여 간단한 비 직렬화 코드를 보여줍니다.

    관련 문제