실 함수 이용 JUnit 적용
- 작성자 :
- 김*태
- 작성일 :
- 2022-08-26 17:01:56
- 조회수 :
- 691
- 구분 :
- 개발환경 / 3.5
- 진행상태 :
- 완료
Q
JUnit테스트시 실제 구현된 함수를 이용하려면 어떻게 구성을 해야 할까요??
@RunWith(MockitoJUnitRunner.class)
public class Test {
@Mocks
private MemberImpl memberImpl;
@Before
public void init(){
memberInf = Mockito.mock(MemberImpl.class);
}
@Test
public void test() {
Map<String, Object> map = new HashMap<>();
Map<String, Object> comMap = new HashMap<>();
try {
map.put("id", "1234");
comMap = Mockito.doCallRealMethod().when(memberImpl).getData(map);
System.out.println(comMap);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Service("com.test.member")
public class MemberImpl extends AbstractTest implements MemberInf {
@Override
public Map<String, Object> getData(Map<String, Object> param) throws Exception {
return dao.select(memberDao.selectData, param);
}
}
Test클래스에서 실제 구현된 MemberImpl 클래스의 getData함수를 실행시키려합니다.
그런데 dao.select(memberDao.selectData, param); 의 dao를 AbstractTest 클래스에서 상속 받는데
dao의 인스턴스가 생성이 되질 않습니다.
어떻게 테스트를 할 수 있을까요??
테스트 용 dao를 생성하여 별도로 환경을 만들어야 할까요???
@RunWith(MockitoJUnitRunner.class)
public class Test {
@Mocks
private MemberImpl memberImpl;
@Before
public void init(){
memberInf = Mockito.mock(MemberImpl.class);
}
@Test
public void test() {
Map<String, Object> map = new HashMap<>();
Map<String, Object> comMap = new HashMap<>();
try {
map.put("id", "1234");
comMap = Mockito.doCallRealMethod().when(memberImpl).getData(map);
System.out.println(comMap);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
@Service("com.test.member")
public class MemberImpl extends AbstractTest implements MemberInf {
@Override
public Map<String, Object> getData(Map<String, Object> param) throws Exception {
return dao.select(memberDao.selectData, param);
}
}
Test클래스에서 실제 구현된 MemberImpl 클래스의 getData함수를 실행시키려합니다.
그런데 dao.select(memberDao.selectData, param); 의 dao를 AbstractTest 클래스에서 상속 받는데
dao의 인스턴스가 생성이 되질 않습니다.
어떻게 테스트를 할 수 있을까요??
테스트 용 dao를 생성하여 별도로 환경을 만들어야 할까요???
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 :
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
Junit MVC 테스트의 경우 테스트 클래스를 만들고
비지니스 로직은 기존의 클래스를 주입받아 구성하실 수 있습니다.
표준프레임워크 교육 자료를 내려받아
데이터처리 교육실습 내용을 참고하시기 바랍니다.
교육자료는 아래 링크에서 받으실 수 있습니다.
https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=65&bbsId=4&nttId=1744
감사합니다.
표준프레임워크센터입니다.
Junit MVC 테스트의 경우 테스트 클래스를 만들고
비지니스 로직은 기존의 클래스를 주입받아 구성하실 수 있습니다.
표준프레임워크 교육 자료를 내려받아
데이터처리 교육실습 내용을 참고하시기 바랍니다.
교육자료는 아래 링크에서 받으실 수 있습니다.
https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=65&bbsId=4&nttId=1744
감사합니다.