Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Step1 미션 제출합니다 #20

Open
wants to merge 8 commits into
base: briandr97
Choose a base branch
from

Conversation

briandr97
Copy link

@briandr97 briandr97 commented Feb 8, 2023

우선 어느 부분까지 테스트를 진행해야 하는 지가 많이 헷갈렸습니다.
여기까지 테스트를 해야 하나..? 안 해도 되나..? 특히 override한 toString함수까지도 테스트를 해야 하나 고민됐습니다.

또 LottoTicket의 has에 대한 테스트에서 MethodSource를 이용하여 LottoNumber를 넘겨주었는데 LottoNumber를 int로 암시적으로 변환할 수 없다는 오류 메시지와 함께 실패했습니다,, 근데 어디서 제가 int로 변환하려 했는지 찾지 못했습니다 ㅠ

@briandr97 briandr97 changed the title Step1 Step1 미션 제출합니다 Feb 8, 2023
Copy link
Member

@malibinYun malibinYun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1단계 미션 고생 많으셨어요 :)
테스트에 익숙해져서 우테코에서도 테스트 마스터로 활약하시길 바라요 ^_____^

우선 어느 부분까지 테스트를 진행해야 하는 지가 많이 헷갈렸습니다.
여기까지 테스트를 해야 하나..? 안 해도 되나..? 특히 override한 toString함수까지도 테스트를 해야 하나 고민됐습니다.

도메인이 어떤 역할을 맡고 있는지에 대해 먼저 생각해보는 것을 연습해보아요 :)

또 LottoTicket의 has에 대한 테스트에서 MethodSource를 이용하여 LottoNumber를 넘겨주었는데 LottoNumber를 int로 암시적으로 변환할 수 없다는 오류 메시지와 함께 실패했습니다,, 근데 어디서 제가 int로 변환하려 했는지 찾지 못했습니다 ㅠ

미션을 급하게 진행하지 않아도 좋으니, 천천히 고민해보면서 문제를 해결해보아요 :)
메서드에서 제공해주는 타입과 파라미터로 받는 타입이 맞지 않아서 생긴 문제일 수도 있겠네요!

Comment on lines +5 to 6
val number: Int
) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

요기 tailing comma는 지우신 이유가 있을까요 ?_?

Comment on lines +15 to +17
// then
assertThat(exception).isInstanceOf(Exception::class.java)
assertThat(exception).hasMessageThat().contains("돈의 액수는 음수가 될 수 없습니다. 입력 값 : $number")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

assertAll 로 감싸는 것과 그렇지 않은 것의 차이점은 무엇일까요?

Comment on lines +7 to +8
@Test
fun `양수만 받는지 테스트`() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

테스트명이 더 구체적이었으면 좋겠어요 :)

Comment on lines +12 to +13
// given
assertThat(exception).isInstanceOf(Exception::class.java)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exception은 Throwable 하위의 Exception 최상위 객체예요.
더 구체적인 Exception instance를 비교해보는 것은 어떨까요?

Comment on lines +27 to +29
// then
assertThat(resultMoney.amount).isEqualTo(money3.amount)
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

amount를 꺼내 비교하기보다, money객체 자체를 비교해보는 것은 어떨까요?

Comment on lines +15 to +16
val errorMessage: String = "로또 티켓에 번호는 6개만 넣을 수 있습니다. 입력 값 : [1, 2]"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

에러 메시지는 인라인으로 넣어줘도 괜찮아보여요 :)

Comment on lines +26 to +29
@Test
fun `로또 번호가 여섯 개일 때 잘 생성되는지 확인 - 기본 생성자`() {
// given
val lottoNumbers = setOf<LottoNumber>(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

잘 생성되는지 까지는 테스트하지 않아도 괜찮아 보여요 :)

Comment on lines +48 to +55
val n1 = 1
val n2 = 2
val n3 = 3
val n4 = 4
val errorMessage: String = "로또 티켓에 번호는 6개만 넣을 수 있습니다. 입력 값 : [1, 2, 3, 4]"

// when
val exception = kotlin.runCatching { LottoTicket(n1, n2, n3, n4) }.exceptionOrNull()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

n1,n2.. 같은숫자들은 인라인으로 넣어도 충분해 보이네요 :)

Comment on lines +79 to +80
@Test
fun `로또 번호가 여섯개가 아닐 때 에러 메시지 확인 - 보조 생성자2`() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

부생성자로 생성했을 때 다른 상태를 갖는 것이 아니라면,
코틀린의 모든 생성자는 최상위 생성자를 거치기 때문에, 보조 생성자에 대해 꼭 테스트하지 않아도 된다고 생각해요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants