Mockito.doNothing()
·
Programming
비즈니스 로직 구현상의 편의와 하위 호환성을 위해 아무것도 하지 않는 메서드를 호출하게 되는 경우가 있다. public abstract class Beer { private String name; private LocalDateTime expirationDate; abstract void addAlcohol(int amount); } 주류회사의 서비스이고, Beer 클래스의 구현체가 굉장히 많다고 가정하자. 비즈니스 로직에는 반드시 addAlcohol()을 호출하고 있다. public class Coffee extends Beer { @Override void addAlcohol(int amount) { // do nothing } } 그런데 갑자기 커피를 만들어 팔려고 한다면...? 커피는 알코올이 들..
Class.isAssignableFrom
·
Programming
서비스에서 생성된 객체에 대한 검증 과정은 반드시 필요하다. 검증하는 방법 및 검증하는 대상은 도메인과 비즈니스 로직에 따라 다르기 때문에 이에 맞는 테스트 코드를 작성하는 건 쉽지 않다. 그럼 객체가 특정 인터페이스 및 클래스를 상속받았다는 것을 테스트 코드로 작성하려면 어떻게 해야 할까? AppleSilicon.java @Getter @Setter @NoArgsConstructor @AllArgsConstructor public abstract class AppleSilicon { private int ram; private int ssd; private int gpu; private String deviceType; public static AppleSilicon makeAppleDevice(int..