모눈종이에 사각사각
[우테코 프리코스 2주차] Assertions 분석 본문
[우테코 프리코스 2주차] NsTest 분석에 이어서 테스트코드에서 사용된 Assertions클래스의 메서드를 분석해보려고 한다.
일단 위의 게임종류_후_재시작()부분의 코드를 보면
컴퓨터가 (1, 3, 5)를 생각했을 때 사용자가 "246"을 입력하면 "낫싱"을, "135"를 입력하면 "3스트라이크"를 출력해야 한다는 뜻이며
"1"을 입력하면 재시작하고,
컴퓨터가 (5, 8, 9)를 생각했을 때 사용자가 "297"을 입력하면 "1볼 1스트라이크"을, "289"를 입력하면 "3스트라이크"를 출력해야 한다
그리고 "2"를 입력하면 "게임 종료"를 출력해야 한다는 뜻이다.
예외_테스트()부분은 사용자가 3자리 숫자가 아닌 다른 숫자를 입력했을 때 예외가 발생해야 한다는 것이다.
⚾ assertRandomNumberInRangeTest
먼저 전체적으로 이해해보면
사용자가 246, 135, 1, 597, 2순으로 입력했을 때
결과가 낫싱, 3스트라이크, 1볼1스트라이크, 3스트라이크, 게임 종료
가 포함되어야 한다.
Excutable : 메서드와 생성자의 공통 기능을 위한 공유 슈퍼 클래스
anyInt() : 입력되는 인자와 무관하게 특정 값을 리턴
⚾ assertRandomTest
assertTimeoutPreemptively :주어진 시간동안 테스트가 끝나지 않으면 테스트를 실패 시키는 메소드
위의 코드에서는 RANDOM_TEST_TIMEOUT안에 끝나야 한다.
위의 코드를 해석해보면(정확하지 않을 수 있다. 완벽하게 이해는 하지 못했다.)
우선 verification은 random한 숫자를 하나 뽑는 함수이다.(Randoms.pickNumberInRange())
MockedStatkc<Randoms> mock으로 목객체를 만들고,
mock.when().thenReturn()은 when()할 때 thenReturn()리턴해라 이런 뜻이므로
verification 즉, Randoms.pickNumberInRange()를 하면, value와 values(컴퓨터가 고른 숫자)를 반환하는 것 같다.
그리고 실행시킨다.(executable.execute())
when 을 사용하면 어떤 상황에서 Mock 객체가 어떤 값을 리턴하도록 만들 수 있다. 이것을 Stubbing이라고 한다.
MockedStatic은 Mockito에 속해있는 인터페이스이다.
Mockito는 Mock 객체를 쉽게 만들고, 관리하고, 검증할 수 있는 방법을 제공하는 프레임워크이다.
Mock Object란 주로 객체 지향 프로그래밍으로 개발한 프로그램을 테스트 할 경우 테스트를 수행할 모듈과 연결되는 외부의 다른 서비스나 모듈들을 실제 사용하는 모듈을 사용하지 않고 실제의 모듈을 "흉내"내는 "가짜" 모듈을 작성하여 테스트의 효용성을 높이는데 사용하는 객체이다. - 위키백과-
⚾ assertSimpleTest
주어진 시간 내에 테스트가 끝나는지 확인하는 메서드이다.
참고사이트
https://scshim.tistory.com/439
https://codechacha.com/ko/mockito-best-practice/⭐
'활동기록' 카테고리의 다른 글
[프리코스] 3주차 회고 (0) | 2022.11.17 |
---|---|
[프리코스] 2주차 회고 (0) | 2022.11.09 |
System.out.println() 단위 테스트하기 (0) | 2022.11.05 |
[우테코 프리코스 2주차] NsTest 분석 (0) | 2022.11.03 |
[프리코스] 1주차 회고 (0) | 2022.11.03 |