JUnit 테스트 코드
새로운 JUnit 모듈 테스트 마법사로 생성한 코드는 아래와 같습니다.
@Test
애노테이션이 작성된 메소드는 개별 메소드를 테스트할 수 있는 테스트 메소드입니다. 마법사에서 선택한 메소드 개수만큼 테스트 메소드가 생성됩니다.
그 외 나머지 메소드는 테스트 전/후 수행되는 메소드이거나 에러가 발생했을 때 수행되는 메소드입니다.
@DisplayName("'Bean 예제'의 테스트")
public class TestMyBean
extends JUnitModuleTestSupport<DefaultSystemHeader>
{
/**
* {@link test.bxm.bean.MyBean#getUserList(
* BigDecimal
* )}
*/
@DisplayName("testGetUserList")
@Test
void testGetUserList()
{
// TODO 필수 헤더값 설정
setHeaderValue("recvSvcC", "SBXM0001A001"); /*수신 서비스코드*/
setHeaderValue("rqstRespG", "S"); /*요청응답구분*/
// 테스트 대상 메소드의 입력 파라미터 타입 목록
Class<?>[] paramTypes= new Class<?>[] {
BigDecimal.class
};
// TODO 입력 값 설정
BigDecimal param0= new BigDecimal("0");
try{
// TODO 기대값 설정 : 테스트 결과로 원하는 기대 값을 설정 하십시오.
List<DbioOutput> expected= null;
// 테스트 수행
ModuleTestResult<DefaultSystemHeader, List<DbioOutput>> result=
doTest(
MyBean.class
, "getUserList"
, paramTypes
// ↓↓↓↓입력↓↓↓↓
, param0
);
List<DbioOutput> actual= result.getResult();
// 결과 출력
logger.debug("Output = {}", actual);
// 결과 비교
assertEquals(expected, actual);
}
catch (Exception e) {
// 테스트 수행 실패
logger.error(e.getMessage());
fail(e.getMessage());
}
}
@Override
protected String getDefaultEndpointURL() {
return "http://yourIP:yourPort/serviceEndpoint/httpService/request.obj";
}
@Override
protected void beforeTest(
URL endpointURL
, DefaultSystemHeader requestHeader
, IOmmObject requestOptionHeader1
, IOmmObject requestOptionHeader2
, IOmmObject requestOptionHeader3
, Object[] requestInput
)
{
// TODO 테스트 직전에 수행 할 작업을 기술 하십시오.
}
@Override
protected void afterTest(
ModuleTestResult<DefaultSystemHeader, Object> testResult
)
{
// TODO 테스트 수행이 성공하면 수행할 작업을 기술 하십시오.
}
@Override
protected void catchMalformedEndpointURLError(
String endpointURL
, Throwable e
)
{
// TODO 잘못된 형식의 URL 이 사용 되었을 때 수행할 작업을 기술 하십시오.
}
@Override
protected void catchInvalidEndpointURLError(
URL endpointURL
)
{
// TODO 잘못된 URL 또는 원격지로 부터 데이터를 읽을 수 없을 때 수행할 작업을 기술 하십시오.
}
@Override
protected void catchPlatformError(
DefaultSystemHeader requestHeader
, IOmmObject requestOptionHeader1
, IOmmObject requestOptionHeader2
, IOmmObject requestOptionHeader3
, Object[] requestInput
, DefaultSystemHeader responseHeader
)
{
// TODO 플랫폼 에러가 발생했을 때 수행할 작업을 기술 하십시오.
}
@Override
protected void catchModuleError(
DefaultSystemHeader requestHeader
, IOmmObject requestOptionHeader1
, IOmmObject requestOptionHeader2
, IOmmObject requestOptionHeader3
, Object[] requestInput
, DefaultSystemHeader responseHeader
)
{
// TODO 모듈 에러가 발생했을 때 수행할 작업을 기술 하십시오.
}
@Override
protected void catchUnknownError(
DefaultSystemHeader requestHeader
, IOmmObject requestOptionHeader1
, IOmmObject requestOptionHeader2
, IOmmObject requestOptionHeader3
, Object[] requestInput
, Throwable cause
)
{
// TODO 알 수 없는 에러가 발생했을 때 수행할 작업을 기술 하십시오.
}
@Override
protected Class<DefaultSystemHeader> getHeaderClass() {
// TODO Auto-generated method stub
return DefaultSystemHeader.class;
}
}