ID 목록을 통해 루프가 지정된 ID를 찾지 못하는 경우 사용자 지정 예외를 throw하는 컨트롤러 메서드가 있습니다. 그렇지 않으면 부분 뷰가 반환됩니다.Moq - 컨트롤러 메서드가 예외를 throw하는 테스트
부분 뷰를 성공적으로 반환했는지 테스트했지만 메서드가 실패하고 사용자 지정 예외가 throw되는지 테스트하려면 어떻게해야합니까?
ID 목록을 통해 루프가 지정된 ID를 찾지 못하는 경우 사용자 지정 예외를 throw하는 컨트롤러 메서드가 있습니다. 그렇지 않으면 부분 뷰가 반환됩니다.Moq - 컨트롤러 메서드가 예외를 throw하는 테스트
부분 뷰를 성공적으로 반환했는지 테스트했지만 메서드가 실패하고 사용자 지정 예외가 throw되는지 테스트하려면 어떻게해야합니까?
간단한 시도/catch를 수행하고 이 아닌 경우 Assert.Fail을 수행하여이 예상 된 예외를 포착 할 수 있습니다. 그러나 대부분의 단위 테스트 프레임 워크는 예외를 자동으로 테스트합니다.
마이크로 소프트의 MSTEST이 시험 방법에 적용 할 수있는 ExpectedException
속성이 있습니다 시험 방법은 위의 하지이 경우 ArgumentNullException을 던져 않는 경우
[ExpectedException(typeof(ArgumentNullException))]
[TestMethod]
public void DoSomething()
{ ... }
을 MSTEST은 실패로 테스트를 표시합니다.
NUnit에는 테스트 메서드에서 예외가 예상되는 위치를 정확하게 제어 할 수 있도록보다 세분화 된 Assert.Throws
이 있습니다.
나는 항상 Assert.Throws() MS 테스트에서 나를 수 없다는 것을 화나게했다. 내 해결책은 예외 유형에 대한 일반 매개 변수를 사용하는 ExtendedAssert 라이브러리를 작성하는 것이 었습니다. –
Patrick 대단히 감사합니다. –