2016-07-23 1 views
1

XML 파일을 serialize하기위한 단위 테스트를 작성했습니다. 다음과 같이 보입니다.Visual Studio에서 Assert 실패 후 문자열 비교

[TestMethod] 
public void TestDeserialize() 
{ 
    var appValue = Persister.ReadFromXml("before.xml"); 
    Persister.WriteToXml(appValue, "after.xml"); 

    var before = File.ReadAllText("before.xml"); 
    var after = File.ReadAllText("after.xml"); 
    Assert.AreEqual(before, after); 
} 

테스트에 실패했습니다. 따라서 Visual Studio 2015의 왼쪽 아래 모서리에 작은 창이 나타납니다.

메시지 : "Assert.AreEqual"오류 : 오류가 발생했습니다. 예상 : < ...> 실제 : < ...>

이클립스 또는 인 IntelliJ에서

, 나는 테스트 실패에 더블 클릭하는 DIFF 편집기에서 열린 예상과 실제 값이 나는 신속하게 위치를 확인할 수 있도록 그들은 다릅니다.

Visual Studio에서 비슷한 기능을 제공합니까? 또는 텍스트를 클립 보드에 복사하고 예상 값과 실제 값을 수동으로 추출한 다음 텍스트 편집기에서 비교해야합니까? XML 텍스트는 꽤 길기 때문에 IDE의 도움을 받고 싶습니다.

+0

을 볼 사람들은 보통 "diffing의 도구"가 아닌 "편집기 비교"이 전화. IDE 중 하나에서이 기능을 사용하지 않았습니다. – 31eee384

+0

IDE 독립적 인 접근 방법으로 직접 실행 창에서 메서드를 호출하면 두 개의 문자열을 사용자의 diffing 도구로 보내는 방법을 알고있는 자체 메서드를 만들 수 있습니다. VS의 병합 도구 또는 kdiff3 등을 호출하는'assertResult.OpenTool()'과 같은 것입니다. 그게 도움이 될까요? – 31eee384

+1

Xunit.net은 더 나은 단정 오류 메시지를 가지고 있습니다. 메시지의 문자 차이점이 처음이라고 지적합니다. 완벽하지는 않지만 더 나은 IMO입니다. :) – DaveShaw

답변

-2

C#을 사용하여 두 개의 문자열을 비교하려면 String.Equals 메서드를 사용하는 것이 좋습니다.

public void TestDeserialize() 
{ 
    var appValue = Persister.ReadFromXml("before.xml"); 
    Persister.WriteToXml(appValue, "after.xml"); 

    var before = File.ReadAllText("before.xml"); 
    var after = File.ReadAllText("after.xml"); 
    bool before_equals_after = before.Equals(after, StringComparison.OrdinalIgnoreCase); 
} 

다른 개체 형식 사이의 테스트 평등을 위해, 나는 당신을 이해한다면 IComparable https://support.microsoft.com/en-us/kb/320727