2017-02-13 13 views
8

상황 내가 찾은 xUnit의의 GitHub의에서XUnit 설명 어설 션 메시지를 구현하는 방법은 무엇입니까?

이 :

우리는 다음과 같습니다 Add Assert.Equal(expected, actual, message) overload #350대답에서

견적 (그래서 개발자는 아래를 참조 아닌 기존의 과부하를 요청) 자기 기록 코드를 신봉하는 자; 당신의 단언을 포함합니다.

OK, 나는 그것을 가지고 (그래서 xUnit의 팀은 그것을 거부). 나는 또한 자기 기록 코드를 믿는다. 그럼에도 불구하고 나는 이 사용 사례 찾을 수 없습니다 :

샘플을

// Arrange 
// Create some external soap service client and its wrapper classes 

// Act 
// client.SomeMethod(); 

// Assert 
// Sorry, soap service's interface, behaviour and design is *given* 
// So I have to check if there is no Error, and 
// conveniently if there is, then I would like to see it in the assertion message 

Assert.Equal(0, client.ErrorMessage.Length); // Means no error 

// I would like to have the same result what would be the following *N*U*n*i*t* assert: 
// Assert.AreEqual(0, client.ErrorMessage.Length, client.ErrorMessage); // Means no error 

질문 나는 아직도 그런이 없습니다 xUnit의이 경우에 설명 어설 션 메시지를 구현할 수있는 방법

과부하?

+0

문제가 무엇인지 명확하지 않습니다. 왜 당신이 코멘트에서 지적한대로'Assert.AreEqual (0, client.ErrorMessage.Length, client.ErrorMessage); '를 사용하고 있지 않습니까? – Kritner

+0

XUnit에는 이러한 과부하가 없습니다. NUnit 호출입니다. XUnit 팀은 인용문 "우리는 자체 문서화 코드를 믿는 사람이며 주장이 포함되어 있습니다"를 이유로 개발자에게 과부하가 있는지 묻습니다. –

+0

@ g.pickardou, 제안을 사용하지 않는 이유는 무엇입니까? 링크에서 제공됩니다. 유창한 주장처럼 또는 메시지 오버로드가 남아있는'Assert.True 또는 Assert.False'를 감싸는 자신 만의 주장을 만드십시오. 더 이상 언급하지 않았습니다. Assert.True와 .False에 메시지를 제공 할 수 있습니다.단순히 메시지없이 살 수 없다면 (다른 주장을 사용하는 것을 거부하면) 항상 다음으로 넘어갈 수 있습니다. Assert.True (숫자 == 2, "This is my message"); ' – Nkosi

답변

6

링크에 제공된 제안 사항을 사용하십시오. fluent assertions처럼 또는 메시지 오버로드가 남아있는 Assert.True or Assert.False을 래핑하는 자신의 주장을 만드십시오. 그것은 더 아래

Quote

당신은 Assert.True 및 .False에 메시지를 제공 할 수 있습니다 언급했다. 당신은 단순히 메시지없이 살 (및 다른 주장을 사용하는 것을 거부) 할 수없는 경우, 당신은 항상 다시 떨어질 수 :

Assert.True(number == 2, "This is my message"); 

Quote:

은 당신이 정말로 메시지를 갖고 싶어하는 경우 Fluent Assertions 또는 xbehave 을 테스트 프로젝트에 추가하고 구문을 사용할 수 있습니다. Fluent Assertions는 xunit.net 예외가있는 경우에도 예외를 발생시킵니다.

+0

입니다. 그러나 대답은 있습니다. 그러나 나는 아직도 당신이 당신의 코멘트에 언급하고있는 유창한 샘플을 찾지 못합니다. –

+0

그것은 시간이 걸렸지 만 마침내 얻었습니다. (픽업해야하는 zillions 유닛 테스트 프레임 워크입니다.) –

+0

유창한 어설 션은 매우 쉽게 받아들입니다. 나는 그것을 많이 사용하고 학습 곡선은 가파르지 않았다. – Nkosi