본문 바로가기

Concept/테스트코드2

id가 없는 상태의 객체 생성을 위한 편의 생성자 id가 없는 상태의 객체 생성을 위한 편의 생성자보통 DB에 저장되기 전, 즉 id가 아직 없는 상태의 엔티티를 표현할 때 id = 0L로 임시 값을 줘테스트 코드나 서비스 로직에서 빠르게 생성할 수 있도록 간편한 생성자를 만들어 놓는 거야//id 없이도 편하게 객체 생성 가능하도록 하기 위한 생성자 체이닝 기법 public Question(NsUser writer, String title, String contents) { this(0L, writer, title, contents); } public Question(Long id, NsUser writer, String title, String contents) { this.id = id; this.. 2025. 4. 25.
내부 구조에 기대지 않고 외부에 드러나는 동작을 확인하자 자동차들이 "주어진 횟수만큼 이동 전략을 수행했는가?"에 대한 기능을 검증하려고 했다.이는 자동차들이 매 회차마다 move()를 호출하는지를 확인하는 테스트로,해당 로직은 자동차 경주 게임의 흐름을 제어하는 Game 클래스에서 수행된다.따라서 테스트의 대상은 Game 클래스이며, 각 클래스의 역할은 다음과 같이 정리할 수 있다.RaceCount는 단순히 반복 횟수를 관리하고Cars는 자동차들을 한 번 움직이는 동작만 담당하며Game은 Game은 RaceCount와 Cars를 조합하여 경주를 진행한다.즉, raceCount 횟수만큼 cars.move()를 호출하는 책임은 Game 클래스에게 있다. ✅ 검증할 코드 그런데 막상 검증할 코드를 볼 때는 Game.start() 내부에서 raceCount.pla.. 2025. 4. 24.