Backing Bean을 생성하기 전에 컨텍스트에 값이 제공되지 않으면 Seam 구성 요소에 대한 단위 테스트가 실패합니다. 나는 이것을 수동으로 테스트 할 수 있었지만 단위 테스트로이 시나리오를 다루고 싶습니다.예외 필터 및 expectedExceptions 주석을 사용한 Seam 유닛 테스트
기본적으로 org.jboss.seam.InstantiationException
은 Seam이 백업 빈을 만들려고 할 때 java.lang.IllegalArgumentException
에 의해 발생합니다. 이것은 좋은 일이며, 내가 기대하는 바입니다. 문제는 단위 테스트를 작성할 때 new FacesRequest(..) {}.run();
주위에 try/catch를 두거나 expectedExceptions 주석을 사용할 수 없다는 것입니다. 두 경우 모두 예외가 발견되지 않아 테스트가 실패하게됩니다. 나는이 때문에 Seam의 예외 필터의 가정하지만 필터에 대해 충분히 올바른 패턴이 테스트 해야할지 모르겠어요 ..
주석과 내 코드는 다음과 같이 보입니다 :
// also tried IlligalArgumentException here
@Test(enabled = true, expectedExceptions = InstantiationException.class)
public void noDataTest() throws Exception
{
login(USERNAME);
// the stack trace says that the test fails on the next line.
// this is expected.
new FacesRequest("/blah/blah/show.xhtml") {
@Override
protected void updateModelValues() {
}
@Override
protected void invokeApplication()
{
// we should never get here
// i'll put an failure here eventually
}
}.run();
}
@Chris Williams 좋은 내용이지만 구성 요소, 범위, 각 테스트 메소드가 포함 된 항목 –
@Arthud Ronald FD Garcia, 내가 문제를 알았을 때 나는 더 많은 정보를 제공하려고했다. 아래 답변을 참조하십시오 .. –