모눈종이에 사각사각

[우테코 프리코스 2주차] Assertions 분석 본문

활동기록

[우테코 프리코스 2주차] Assertions 분석

모눈종이씨 2022. 11. 4. 01:35

[우테코 프리코스 2주차] NsTest 분석에 이어서 테스트코드에서 사용된 Assertions클래스의 메서드를 분석해보려고 한다.

ApplicationTest.java 전체코드

일단 위의 게임종류_후_재시작()부분의 코드를 보면

컴퓨터가 (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/

https://bestalign.github.io/dev/intro-mockito-1/

https://www.crocus.co.kr/1705

'활동기록' 카테고리의 다른 글

[프리코스] 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
Comments