티스토리 뷰
Springi Transaction 9-5 Spring Test
£ SpringJUnit4ClassRunner를 사용한 JUnit4 기반 테스트
• @RunWith Annotation 값으로 SpringJUnit4ClassRunner 클래스를 설정함.
• 사용될 Spring 설정 파일의 경로는 @ContextConfigLocation Annotation의 locations 속성을 이용해 설정함. Wild Card(*) 사용 가능
£ @RunWith(SpringJUnit4ClassRunner.class)
£ @ContextConrigLocation(locations={"dataSource.xml", "board.xml", "common.xml"})
£ public class BoardServiceTest{
£ }
£ @RunWith(SpringJUnit4ClassRunner.class)
£ @ContextConfiguration(locations={"file:./src/main/resources/spring/context-*.xml"})
£ public class BoardServiceTest{
£ }
• 테스트에서 필요로 하는 bean은 @Autowired나 @Resource로 주입하여 사용하면 됨
• @RunWith(SpringJUnit4ClassRunner.class)
• @ContextConfiguration(locations = {"file:./src/main/resources/spring/context-*.xml"})
• public class UserServiceTest {
• @Autowired
• private UserService userService;
• @Test
• public void testAddUser() throws Exception {
• String userID = "Test" + System.currentTimeMillis();
• User user = new User();
• user.setUserId(userID);
• user.setUserName("gang");
• user.setPassword("gang");
• userService.addUser(user);
• user = userService.getUser(userID);
• assertEquals(userID, user.getUserId());
• }
• }
• Assert 클래스의 메서드
|
메소드
|
설명
|
|
assertEquals( expected value,
actual value )
|
예상 값과 실제 결과값이 동일함을 선언 비교하여 같으면 성공, 틀리면 실패
|
|
assertNotNull(Object object)
|
입력 객체가 Null 값이 아님을 확인한다.
|
|
assertNotSame(String message,
Object expected,
Object actual)
|
예상 값과 실제 값이 같지않음을 확인한다.
|
|
assertNull(Object object)
|
입력 객체가 Null 값임을 확인한다.
|
|
assertSame(String message,
Object expected,
Object actual)
|
예상 값과 실제 값이 같음을 확인한다.
|
|
assertTrue(boolean condition)
|
입력 조건이 True 임을 확인한다.
|
£ 트랜잭션 처리를 위한 설정
• 테스트 시에 쓰레기 데이터가 추가되는 것을 방지하기 위한 방법임.
• @TransactionConfiguration을 사용하여 강제 rollback 가능
£ @RunWith(SpringJUnit4ClassRunner.class)
£ @ContextConfiguration(locations={"file:./src/main/resources/spring/context-*.xml"})
£ @TransactionConfiguration(transactionManager = "txManager",
£ defaultRollback = true)
£ @Transanctional
£ public class BoardServiceTest{
£ @Autowired
£ private BoardService boardService;
£ @Test
£ @Rollback(false)
£ pubic void getBoard(){
£ BoardVO vo = new BoardVO();
£ vo.setSeq(1);
£
£ BoardVO board = boardService.getBoard(vo);
£ assertNotNull(board);
£ }
£ }
'it' 카테고리의 다른 글
| (FrameWork 프레임워크) (0) | 2023.03.02 |
|---|---|
| Jeus 설치 (0) | 2023.03.02 |
| 원형(ring) 구조 (0) | 2023.02.28 |
| 파이썬 라이브러리 사용법 , tkinter (0) | 2023.02.27 |
| 프로토콜과 인터페이스 (0) | 2023.02.26 |
