게시글
질문&답변
2023.08.20
통합 테스트 코드 - 회원가입() 메서드 에러 질문드립니다.
본문에 에러메시지 중 일부를 보면Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "M1_0.USERNAME" not found; SQL statement:와 같은 부분이 있는데요, 아마 DB에 컬럼이 없던것 같습니다. 잘못된 답변으로 혼동드려 죄송합니다 ㅎㅎ,, 아래 코즈위버님께서 작성하신 답변 참고 부탁드립니다 :)spring.jpa.hiberate.ddl-auto=create 옵션은, 테이블이나 필드가 없으면 새로 생성하라는 의미입니다.그래서 없던 컬럼이 새로 생성되면서 테스트코드가 정상적으로 실행된거구요.
- 0
- 4
- 1.2K
질문&답변
2023.08.20
Assertions 메서드 인자 순서
둘 다 순서가 중요합니다.Assertions.assertEquals(A, B) 에서A : expected (기댓값)B : actual (실제 값)Assertions.assertThat(A).isEqualTo(B) 에서A : actual (실제 값)B : expected (기댓값) 즉, 각 메소드별로 A와 B의 의미가 다르기 때문에영한님께서 강의에 그렇게 내용을 포함하셨을거라 생각합니다. =======================================================예를 들어, 계산기 프로그램의 add(int, int) 메소드를 테스트한다고 했을 때Assertions.assertEquals(8, Calc.add(3, 5)) 가 옳은 표현이며, 그 반대인Assertions.assertEquals(Calc.add(3, 5), 8) 은 부적절한 표현입니다.만약 add 메소드가 잘못 개발되어 Calc.add(3, 5) -> 5 가 반환된다고 가정해봅시다. 테스트에 실패했을 때, 발생하는 에러메시지를 본다면전자 : 기댓값이 8이지만, 실제로 5가 나왔어.후자 : 기댓값이 5이지만, 실제로 8이 나왔어.와 같은 맥락으로 출력됩니다. Assertions.assertThat 은 isEqualTo 만 놓고보면 A, B의 순서가 중요하지 않아보일 수 있지만,범위를 테스트하는 코드 예시를 하나 작성해드리겠습니다. 아래 코드 보시면 바로 이해가 가실겁니다.assertThat(result) .isGreaterThan(0) .isLessThan(10);
- 2
- 1
- 684