2014-03-26 6 views
1

누구든지 xUnit.Net이 Xunit.SDK.TraceAssertException을 던지는 것을 막을 수있는 방법을 알고 있습니다. 코드 테스트 중 실패가 발생하면 System.Diagnostics.Debug.Assert이 발생합니까?xUnit.net 및 Debug.Assert

가끔 디버그 모드에서 가드를 사용하여 다른 개발자가 API를 잘못 사용하고 있음을 알립니다. 그러나 xUnit.Net에서이 예외가 발생하면 유닛 테스트가 중단됩니다.

답변

0

일반적으로 내부/개인 코드에 대해 디버그 어설 션을 사용합니다. 변이 된 상태에서 가능한 부작용이 없을 수 있습니다. 그런 종류의 코드는 공개 API에 공개되지 않으므로 단위 테스트를하지 않을 것입니다.

디버그 어설 션 예외가 테스트에서 트리거되는 상태를 제조하는 경우 xunit 어설 션과 관련된 문제를 피할 수 없다고 생각합니다. 따라서 공개 API를 테스트하려는 의도가있는 경우에는 사용하지 않을 것입니다. Debug.Assert 대신에 매개 변수 유효성 검사 유형 예외를 사용하고 개인 내부 코드를 테스트하려는 의도가있는 경우 좋은 생각이 아니라고 제안하는 많은 문헌이 있습니다.

+0

내가 "개인 코드를 테스트해서는 안됩니다"라는 논리에 전적으로 동의하지는 않습니다. –