티스토리 뷰

it

Springi Transaction 9-5 Spring Test

gams21 2023. 3. 1. 21:17
반응형

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함