테스트 대역(Test Double)로 사용하는 목(Mock)과 스텁(Stub)은 뭐가 다른가
테스트 대상이 되는 SUT(System Under Test)와 협력자(Collaborator) 사이에 일어나는 상호 작용을 검사할 때, 테스트 대역(Test double)을 사용한다. 테스트 대역은 크게 목(Mock)과 스텁(Stub)으로 나눌 수 있다. ’단위 테스트 (블라디미르...
테스트 대상이 되는 SUT(System Under Test)와 협력자(Collaborator) 사이에 일어나는 상호 작용을 검사할 때, 테스트 대역(Test double)을 사용한다. 테스트 대역은 크게 목(Mock)과 스텁(Stub)으로 나눌 수 있다. ’단위 테스트 (블라디미르...
단위 테스트(Unit Testing)에서 단위(Unit)의 경계는 무엇일까? OOP(Object-Oriented Programming) 언어로 테스트를 짜고 있다면 클래스(Class)를 단위로 생각하면 되는 걸까? FP(Functional Programming) 언어로 테스트를 짜...
구현 세부 사항(Implementation Details)을 테스트하지 말아야 한다. 리팩터링하면 쉽게 깨지는 테스트가 되기 때문이다. 테스트 코드는 리팩터링을 안전하게 할 수 있게 지켜주는 방어막인데, 장애물이 되어 버린다. 리팩터링했는데, 고쳐야 하는 테스트가 많다면 구현 세부...
’단위 테스트 (블라디미르 코리코프, 2021)’ 책의 ’7장 가치 있는 단위 테스트를 위한 리팩터링’을 보고 정리한 내용이다. 모든 코드를 테스트할 수는 없다. 그래서 중요하고 의미 있는 영역부터 테스트를 짜야 한다. 중요한 영역부터 시작해 덜 중요한 영역까지 테스트 커버리지를 ...
작년에 결심한 2023년
Enum.all?/1 함수를 사용한 함수 테스트할 때였던 걸로 기억한다. 비어 있는 리스트를 넣어서 테스트했을 때, 기대하지 않은 값이 나와서 의아했다. 비어 있는 리스트를 인자로 넘겼을 때, false 값이 나올 것으로 기대했다. 하지만 true 로 나오는 것이었다. Enum.a...
dotfiles란?
Bash 잘 쓰다가 왜 Zsh 사용을 결심했나
이제는 Clojure를 거의 안 쓴다. 요즘 많이 쓰고 있는 Elixir로 다시 구현해 볼까? 언제 이런 생각이 들었을까? 아마 Heroku에서 무료 인스턴스(dyno)를 중지한단 소식을 들었을 때였던 걸로 기억한다.
repository templates?
Heroku란?
프로그램에 실행 옵션을 넘기는 방법
어떤 상황에서 이런 걸 고민하게 됐는가?
C# 비동기 프로그래밍에 익숙하지 않아서 책을 사서 읽었다. 비동기 기초, 비동기 스트림, TPL(task parallel library)을 활용한 병렬 처리, System.Reactive, 테스트, 컬렉션, 동기화 등 동시성 프로그래밍에 필요한 폭넓은 지식이 담겨 있다. 여기서 ...
맥 미니(Mac mini M2, 2023)를 꺼본 적이 없다. 매직 트랙패드(Magic Trackpad) 2를 손가락으로 간지럽히면 언제든 깨어난다. 팬이 있는지도 모르겠다. 이게 다 조용해서 그렇다.
매니저(manager)는 개인 기여자(Individual Contributor, IC, 팀원) 여러 명을 관리해야 한다. 일 대 다 관계이다. 그 말인즉슨 항상 병목이 될 수 있다는 걸 명심하고 있어야 한다. 여유 좀 부려서 팀원이 내 결정을 기다리게 했다가는 삽시간에 내가 병목이...
작년에 결심한 2022년