Shift(⇧) + F6 : 클래스, 변수, 파라미터 이름을 일괄적으로 변경해주는 단축키 입니다.
- .isInstanceOf : 객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는데 사용하는 연산자
- .hasMessage() 해당 메시지를 가지는지 쓰임
- @ParameterizedTest : 매개 변수가 있는 테스트 메서드를 식별
- @ValueSource : 테스트 메서드에 매개 변수 주입
.hasMessage의 용도는 throw한 예외 메시지가 같지 않으면 Error가 출력된다.
그래서 아래의 코드의 두번째 이미지의 경우 정상적으로 exception 메시지가 출력되었다고 한 것이다.
<CalculatorTest 클래스>에서
Calculator에게 calculate 인터페이스를 먼저 선언하고
<Calucaltor 클래스>이를 통해서 통신을 한다.
그리고 <CalculatorTest 클래스>에서
Calculator.calculate를 통해 calculate에게 작업을 위임한다.
(같은 이미지 첨부 맞음 / 위 밑줄 처럼 작업을 위임한다)
그러면 <Calucaltor 클래스> 에서 calculate는 arithmeticOperators에게 해당하는
supports 또는 .calculate에게 또 작업을 위임한다
이러한 구조로 객체들끼리 메시지를 주고 받으면서 메소드 호출을 메시지를 전달한다고 표현을 한다. 그래서 이러한 방식으로 코드를 짜는 것을 객체지향적으로 프로그래밍한다고 이야기한다.