일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터베이스
- docker
- snort
- OSI7계층
- 코딩 테스트
- Snort Rule
- Cosmos
- db
- 프로그래머스
- TDD
- coding test
- 컨테이너
- Python
- Container
- 도커
- Router
- database
- 라우팅
- 스노트 룰
- 코딩테스트
- 리눅스
- 트레바리
- Linux
- programmers
- 라우터
- 라우팅프로토콜
- osi7layer
- Routing
- 스노트
- MySQL
- Today
- Total
목록TDD (5)
Simple is IT, 누구나 보고 누구나 깨닫는 IT
LinkFixture Monkey를 적용해보자지루함을 편함으로 바꿔주는 Fixture Monkey에 대한 문서이다.Problem테스트를 작성하며 각자 느끼는 고충이 있을 것이다. 그 중 많은 사람들이 테스트를 위한 셋업 코드를 작성하며 많은 시간을 소요하고, 지루함을 느끼곤 한다. TDD의 저자 켄트벡은 두려움이 지루함으로 변할 때까지 테스트를 작성하라고 하지만, 나는 더 나아가 반복되는 지루함은 반드시 자동화해야 한다고 생각한다.테스트 코드를 작성하는 우리의 두려움은 지루함으로 바뀌었으니, 이 지루함의 반복됨을 편함으로 바꿀 수는 없을까?Fixture MonkeyFixture Monkey는 이런 고민을 해결해준다. 이 라이브러리를 사용하면,테스트 데이터 생성을 자동화하여 시간을 아낄 수 있다.다양한 시..
밥 아저씨가 생각하는 테스트 주도 개발TDD의 세 가지 법칙실패한 단위 테스트를 만들기 전에는 제품 코드를 만들지 않는다.컴파일이 안 되거나 실패한 단위 테스트가 있으면 더 이상의 단위 테스트를 만들지 않는다.실패한 단위 테스트를 통과하는 이상의 제품 코드는 만들지 않는다.확신FitNesse의 코드는 6만 4천 줄인데, 그중 2만 8천 줄은 테스트 코드다.어떤 부분이라도 바꾸게 되면 별 생각 없이 단위 테스트 코드를 돌리는데, 통과하면 내가 만든 변경이 다른 부분을 망가뜨리지 않았다고 거의 확신할 수 있다.용기믿음직한 테스트 묶음이 있으면 변경에 대한 두려움이 모두 사라진다. 나쁜 코드가 보이면 그저 그 자리를 깨끗이 치우면 된다.문서화세 가지 법칙에 따라 만든 각 단위 테스트는 코드로 만든 에제이며 시..
Planetary orbital calculator 태양계의 모든 행성들의 궤도 데이터를 담는 객체가 필요했습니다. @Test void 궤도를_생성합니다() { Orbit actual = Orbit.of(LONG_RADIUS, ECCENTRICITY, INCLINATION, LONGITUDE_OF_ASCENDING_NODE, AVERAGE_LONGITUDE, PERIHELION_LONGITUDE); assertThat(actual).isInstanceOf(Orbit.class); } 날짜별 행성의 위치 계산에 필요한 궤도 데이터가 정의되어야 했기에, 제가 필요한 데이터들을 생성자로 넣어줬습니다. 그리고, 그 객체가 Orbit 인지 확인했죠. 처음엔 빠르게 통과시키기 위해, 빈 객체를 반환했습니다. 통과하..
Fibonacci 첫 번째 테스트는 fib(0) = 0 으로 시작합니다. @Test void fibonacci() { assertThat(Fibonacci.fib(0)).isEqualTo(0); } 어차피 확인할 값이 0 뿐이라, 빠르게 성공시키기 위해 0을 바로 반환합니다. public static int fib(int n) { return 0; } 두 번째 테스트는 fib(1) = 1 입니다. @Test void fibonacci() { assertThat(Fibonacci.fib(0)).isEqualTo(0); assertThat(Fibonacci.fib(1)).isEqualTo(1); } 돌려보면, 당연히도 실패하겠죠. 저는 빠르게 테스트를 성공시키기 위해 아래와 같은 '범죄'를 저지를 것입니다...
값 객체 패턴(value object pattern) TDD(Test driven development)에 대해 연마하다가 값 객체 패턴이라는 단어를 발견했어요. 각 객체 패턴은 객체를 값처럼 쓸 수 있다는 것입니다. 제약사항 중 하나는, 객체의 인스턴스 변수가 생성자를 통해서 일단 설정된 후에는 변하지 않음을 보장하죠. 값 객체를 사용하면 별칭(aliasing) 문제에 대해 걱정할 필요가 없다는 장점이 있어요. 테스트 주도 개발의 저자 켄트 벡(Kent Beck)은 이 별칭 문제에 대해 경험담을 꺼냈습니다. 수표가 하나 있는데 여기에 $5를 설정하고, 또다른 수표에도 아까 설정했던 $5를 설정했다고 치자. 내 경험 중에서 가장 형편없었던 버그는 부주의하게 두 번째 수표의 값을 변화시키는 바람에 첫 번째..