본문 바로가기

TDD6

[Study 005] 테스트 주도 개발 스터디 주제 '테스트 주도 개발 (켄트 벡 저)' 를 메인으로 진행 + 테스트 코드 짜는 방법 관련. 각자 스터디할 챕터 모두 읽어온 후(챕터별 담당자 없음) 모여서 토론. 혹은 질문할 부분이나 추가로 얘기하고 싶은 부분 얘기하기. 참가자 - https://github.com/nahwasa - https://github.com/UjiinEatingTangerines - https://github.com/Octoping925 - https://github.com/jsm8778 - https://github.com/realain - https://github.com/sorrymommy 일정 (완료) 매주 토요일 오후 2시 게더타운에서 진행. 1주차 (2022-12-17) : 킥오프, 1장, 2장 2주차 (2.. 2023. 3. 8.
[TDD] 스터디 4주차 (25~28장 정리) 스터디 메인 페이지 25장. 테스트 주도 개발 패턴 ⚈ 그 어떤 소프트웨어 엔지니어도 아무리 작은 변화라도 테스트하지 않고 릴리즈하지는 않는다. ⚈ 스트레스를 많이 받음 -> 테스트를 점점 뜸하게 함 -> 에러는 점점 많아짐 -> 에러로 인해 더 많은 스트레스! '테스트'를 '자동화된 테스트'로 치환하자. '내가 이걸 고치면서 뭔가 다른 부분을 망가트리지 않았을까?' 라는 두려움을 지루함으로 바꿔주는 효험이 있음 ⚈ 격리된 테스트 - 테스트들은 서로 영향이 없어야 한다. ⚈ 테스트 목록 - 시작하기 전에 작성해야 할 테스트 목록을 모두 적어둘 것. ⚈ 테스트 우선 - 테스트는 언제 작성하는 것이 좋을까? 테스트 대상이 되는 코드를 작성하기 직전! ⚈ 단언 우선 - assert는 언제쯤 쓸까? assert.. 2023. 1. 20.
[TDD] 스터디 3주차 (테스트 반복, 순서 지정, Extension 관련) 스터디 메인 페이지 * 책 내용의 1,2부는 책을 따라 실습하는 내용이므로 정리하는게 의미 없다고 판단되어 다른 스터디와 달리 책 내용은 정리하지 않습니다. 스터디에서 책 이외로 나온 내용만 정리했습니다. ⚈ 예를들어 시간 조건을 두고 테스트가 필요한 경우, 아래와 같은 테스트는 실행할때마다 성공할수도 있고 실패할수도 있다. @Test @DisplayName("1000만까지의 짝수의 합은 1ms 이내에 통과해야 한다.") void test() { Study study = new Study(); long sum = assertTimeoutPreemptively( Duration.ofMillis(1) ,() -> study.sumEvenNumbers(10000000) ,() -> "1000만 이하의 짝수의 .. 2023. 1. 10.
[TDD] 스터디 2주차 (JUnit 관련 내용) 스터디 메인 페이지 * 책 내용의 1,2부는 책을 따라 실습하는 내용이므로 정리하는게 의미 없다고 판단되어 다른 스터디와 달리 책 내용은 정리하지 않습니다. 스터디에서 책 이외로 나온 내용만 정리했습니다. ⚈ IntelliJ 에서 JUnit 테스트는 Gradle로 실행하는 방법과 JUnit으로 실행하는 방법이 있다. Gradle 사용 시 기본 실행은 Gradle로 실행된다. JUnit으로 실행하려면 Edit Configurations 에서 설정을 추가해서 실행하면 된다. 큰 차이는 없는데, Gradle로 실행 시엔 BUILD SUCCESSFUL 같은 그래들 메시지가 붙긴한다. 다만 그래들에서 설정할 수 있는 부분들이 있고, IDE 뿐 아니라 서버 환경에서도 동일하게 쓸 수 있으므로 그래들 쓸꺼면 그래들로.. 2023. 1. 9.
[TDD] 스터디 1주차 (기본적인 테스트 방법, 1~2장 정리) 스터디 메인 페이지 목차 - ☆ 표시가 붙은 부분은 스터디 중 나온 얘기 혹은 제 개인적인 생각이나 제가 이해한 방식을 적어놓은 것으로, 책에 나오지 않는 내용입니다. 따라서 책에서 말하고자 하는 바와 다를 수 있습니다. ☆ 스터디 킥오프 (테스트 관련 랜덤 팁) 이하 내용은 책 내용 스터디 들어가기 전에 스터디 팀원들끼리 공유한 내용이다. [ Octoping925님의 발표 자료 : https://github.com/Octoping925/TestCodePresent ] ⚈ 실제 구현부와 테스트쪽의 패키지, 클래스명 구조를 동일시 하는게 중요하다. ⚈ GWT, AAA Given : 특정한 값을 가지고 When : 로직을 실행했을 때 Then : 잘 나왔는지 검증한다. AAA : Assignment(=Giv.. 2022. 12. 18.
[계획] 안써본거 위주로 써보기 위한 토이 프로젝트 아무래도 자신있게 쓸 수 있는걸 많이 쓰게되기 마련이니, 언젠가부터 쓰던것만 계속 쓰는 것 같다. 매너리즘에 빠진게 분명하기에 무지성으로 안써본것들 위주로 써보는 토이프로젝트를 해보려 한다. 또 좋았던 부분들은 실제 프로젝트에도 적용해보려 한다. 일단은 계획 + 공부 단계이긴 하지만 의욕이 식기전에 몇일 내로 시작할꺼다. 내 블로그에 글 적어도 아무도 안볼테지만 글을 적어두면 스스로 반성하며 꾸준히 하지 않을까 싶다. 1. MacOS에서 개발해보기 그동안 윈도우로만 개발을 해봤었다. 이전에 테스트용 웹앱 만든게 iOS에서도 제대로 동작하는지 확인하기 위해 테스트 어플을 만들려고 맥북을 빌려 잠시 건드려보긴 했지만, 로그인부터 어플 실행까지 빌려준 분이 해준거라ㅋㅋ 그냥 뭐가 뭔지도 모르고 단축키도 모르는.. 2021. 12. 17.