명확한 어설 션식이없는 메서드 테스트가 있습니다. 반환 된 테스트 된 값은 프로그래머가 올바른지 검사하기 위해 검사해야하는 매우 긴 문자열입니다. 이런 이유로 코드가 예외없이 실행되면 'Assert.Inclusclusive'를 호출합니다.C# 단위 테스트에서 어설 션 예외를 필터링하는 방법
그러나 어떤 종류의 예외가 발생하면 예외 메시지와 함께 'Assert.Fail'을 호출하려고합니다. 이런 식으로 뭔가 :
[TestMethod()]
public void Test()
{
try {
string toBeChecked = MethodToBeTested();
//the string is so particular that no clear
//assertion can be made about it.
Console.WriteLine(toBeChecked);
Assert.Inconclusive("Check the console output.");
} catch(Exception e) {
Assert.Fail(e.Message);
}
}
이 코드의 문제는, 어떤 일정한 예외가 발생되지 않는 경우, Assert.Inconclusive
방법도 사로 잡았되는 예외를 throw 너무 Assert.Fail
이라고합니다, 그리고 IDE 테스트 결과 창에서 보인다 그 시험은 실패했다. 이것은 내가 원하는 것이 아닙니다.
모든 예외를 포착하는 등의 예외를 필터링하는 방법이 있습니까?
... 대신 Exception
의 특정 예외 유형을 잡거나 AssertInconclusiveException
입니다 Assert.Inconclusive
방법에 의해 발생 NUNIT 예외에 대한 또 다른 캐치를 추가 할
가 불 연속적으로 테스트 할 수있는 메서드 호출 다른 방법을합니까 ManualAssertRequired :
은 적어도 시험에게 같은 것을 포함 도움이 이름을 부여? 그들이 모두 예상대로 작동하는지 테스트 할 수 있다면 호출하는 방법에 대해 확신을 가질 수 있습니다. –
@ 그렉 B :이 경우 "모 놀리 식"방법이었습니다. 그러나 나는 그것에 대해 신경 쓰지 않는다. 내가 원했던 것은 실제로 다른 개발자가 예외가 아닌 한 결정적 결과를 볼 수 있지만 예외는 볼 수 없다는 것이다. –