반응형
TDD : 테스트가 주도하는 개발
- 테스트 코드를 먼저 작성하는 것부터 시작
- 레드 그린 사이클
- 항상 실패하는 테스트를 먼저 작성 (Red)
- 테스트가 통과하는 프로덕션 코드를 작성 (Green)
- 테스트가 통과하면 프로덕션 코드를 리팩토링 (Refactor)
단위테스트 : TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성
- TDD와 달리 테스트 코드를 꼭 먼저 작성 해야하는 것도 아니고
- 리팩토링도 포함되지 않는다. 순수하게 테스트 코드만 작성하는 것을 이야기
단위 테스트 코드를 작성함으로써 얻는 이점
- 개발단계 초기에 문제를 발견하게 도와준다.
- 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인 할 수 있다. (예 회귀테스트)
※ 회귀 테스트 : 이미 테스트된 프로그램의 테스팅을 반복하는 것으로, 결함 수정 이후 변경의 결과로 새롭게 만들어 지거나, 이전 결함으로 인해 발견되지 않았던 또 다른 결함을 발견하는 테스트 - 기능에 대한 불확실성을 감소시킬 수 있다.
- 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용할 수 있다.
테스트 코드 작성을 도와주는 프레임워크들
- 가장 대중적인 테스트 프레임워크로는 xUnit이 있다. 이는 개발환경(x)에 따라 Unit 테스트를 도와주는 도구라고 생각하면 된다.
- JUnit - Java / 자바의 테스트 도구인 JUnit은 계속해서 개선 중이며 최근에는 버전5까지 나왔다.
- DBUnit - DB
- CppUnit - C++
- NUnit - .net
Application 클래스는 프로젝트의 메인 클래스
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(ImqaBackOfficeApplication.class, args);
}
}
- @SpringBootApplication으로 인해 스프링 부트의 자동 설정, 스프링 Bean 읽기와 생성을 모두 자동으로 설정된다.
- @SpringBootApplication이 있는 위치부터 설정을 읽어가기 때문에 이 클래스는 항상 프로젝트의 최상단에 위치해야만 한다.
- main 메서드에서 실행하는 SpringApplication.run으로 인해 내장 WAS(Web Application Server, 웹 애플리케이션 서버)를 실행한다.
※내장WAS란 별도로 외부에 WAS를 두지 않고 애플리케이션을 실행할 때 내부에서 WAS를 실행하는 것을 이야기한다.
- 항상 서버에 톰캣을 설치할 필요가 없게 되고, 스프링 부트로 만들어진 Jar파일(실행 가능한 Java 패키징 파일)로 실행하면 된다.
- 스프링 부트에서는 내장WAS를 사용하는 것을 권장 - '언제 어디서나 같은 환경에서 스프링 부트를 배포' 할 수 있기 때문이다.
if/else문, switch/case문 성능 차이
https://devmoony.tistory.com/121
[Java] if/else문, switch/case문의 성능 차이에 대해
좋은 조건문에 대해 2 - if/else문, switch/case문의 성능 차이 조건문에는 if / else 문도 있지만 switch / case 문도 있다. 개인적으로 이 둘의 '가독성' 차이는 별로 없다고 생각하여 개발자마다 취향 차이
devmoony.tistory.com
테스트 기본내용 참고
책 '스프링 부트와 AWS로 혼자구현하는 웹 서비스' - 저자 이동욱
회귀 테스트 참고
http://jidum.com/jidums/view.do?jidumId=581
지식덤프
I. 확인 테스트 결함이 발견되고 수정된 후에 소프트웨어의 원래의 결함이 성공적으로 제거 되었는지 확인하기 위해 수행하는 테스트 (결함의 원인을 찾거나 결함을 수정하기 위한 디버깅(Debuggi
jidum.com
반응형
'Today I Learned' 카테고리의 다른 글
2022년 11월 15일 화요일 TIL (0) | 2022.11.16 |
---|---|
TIL_항해99_68일차 (실전 프로젝트 22일 차) - 정신 차리자 (0) | 2022.07.15 |
TIL_항해99_67일차 (실전 프로젝트 21일 차) - 정신 차리자 (0) | 2022.07.14 |
TIL_항해99_66일차 (실전 프로젝트 20일 차) - 정신 차리자 (0) | 2022.07.14 |
TIL_항해99_65일차 (실전 프로젝트 19일 차) - 정신 차리자 (0) | 2022.07.12 |