Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 동일성과 동등성
- while과 two-pointer
- 스프링환경설정
- 자바 최소공배수
- 최대공약수
- 스프링
- isuppercase()
- 자바 스트링
- 자바 유클리드
- Git사용법
- 최대공약수와 최소공배수
- 프로그래머스 레벨1
- ineer join
- islowercase()
- 베주계수
- 최소공배수
- addDoc
- StringBuilder
- replaceAll()
- sql 데이터형 변환
- stringbuilder의 reverse()
- git 컨벤션
- string과 stringbuilder
- 모던자바
- 유클리드호제법
- string
- 래퍼타입
- 자바 최대공약수
- 스프링뼈대
- toLowerCase()
Archives
- Today
- Total
주노 님의 블로그
[Spirng] 7. Spring 데이터베이스 - 단위테스트 (JUNIT) 본문
시작하기에 앞서
아래 내용은 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근기술에서 발췌한 내용입니다.
강의자료 일부를 발췌하는건 괜찮다고 하셨다.
무료강의로 지식을 공유해주신 김영한님께 다시한번 감사의 인사를 올리겠습니다
(_ _) (유료도 샀어요!)
SDLC에서 프로그램을 테스트 하는 단계는
단위 시험 : 함수나 메서드 수준에서의 코드를 테스트한다
통합 시험 : 다양한 모듈이나 서비스가 서로 올바르게 작동하는지, 데이터를 정확히 교환하는지 검증한다.
시스템 시험 : 통합된 전체 시스템이 요구사항을 만족하는지 테스트한다.
인수 시험 : 최종 사용자나 고객이 참여하여 테스트하는 과정이다.
~~~~~~~~
그중에서 단위테스트에 대해서 수행해보자
@SpringBootTest
@Transactional
class MemberServiceIntegrationTest {
새로운 서비스 테스트를 위해 클래스를 생성하고
위 두가지 어노테이션을 부착해준다
@Test
void 회원가입()
{
//given - when - then패턴을 사용하면 가독성과 유지보수가 좋다!
//given 테스트의 사전조건
Member member1 = new Member();
member1.setName("juno");
//when 실행했을때, 동작을 수행하는 부분
Long saveId = memberService.join(member1);
//then 결과가 ~ 나와야한다.
Member findMember = memberService.findOne(saveId).get();
assertThat(member1.getName()).isEqualTo(findMember.getName());
}
위 테스트를 실행해보자.
SpringBootTest는 스프링 컨테이너와 테스트를 함께 실행한다는뜻으로
서버를 구동하면서 테스트를 한다는뜻이다
우리가 위 두 어노테이션을 부착함으로
BeforeEach등을 만들어서 수행이 끝나면 삭제하지 않아도 되는 이유는
transactional은
테스트가 끝난뒤에, 롤백을하게된다
즉, db에 실제데이터가 반영이 되지않아서 다음 테스트도 여러번 실행이 가능하다.
'공부 > Spring' 카테고리의 다른 글
[Spirng] 7. Spring 데이터베이스 연동 - JPA (0) | 2024.07.29 |
---|---|
[Spirng] 7. Spring 데이터베이스 연동 - JDBCTemplate (0) | 2024.07.29 |
[Spirng] 7. Spring 데이터베이스 연동 - JDBC를 통한 데이터베이스 연동 (0) | 2024.07.29 |
[Spirng] 7. Spring 데이터베이스 연동 - H2데이터베이스 설치 (0) | 2024.07.28 |
[Spring] 6.웹 기능을 위한 프론트엔드 구성 (0) | 2024.07.28 |