일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- foreignkey
- 2 > /dev/null
- 포트
- 컨테이너실행
- 추후정리
- 메소드명
- application.yml
- 네이티브쿼리
- ubuntu
- 서브쿼리
- 테스트메소드
- docker명령어
- EC2
- ㅔㄴ션
- 검색
- MySQL
- 테스트
- 예약
- subquery
- querydsl
- appspec
- appspec.yml
- 참조키
- 커밋메세지수정
- WeNews
- 메세지수정
- AuthenticationEntryPoint
- Query
- 외부키
- 적용우선순위
Archives
- Today
- Total
제뉴어리의 모든것
actual and formal argument lists differ in length 에러 본문
상황
테스트에서 Post에 대한 Dto를 전송하여 Controller에 대한 슬라이스 테스트 진행 하려 함.
- 실행 코드
@WebMvcTest({MajorController.class, MajorMapper.class})
@AutoConfigureMockMvc
public class MajorControllerTest {
@Autowired
private MockMvc mockMvc;
private MediaType mediaType = MediaType.APPLICATION_JSON;
@Autowired
private Gson gson;
@Test
public void postMajorTest() throws Exception {
MajorDto.Post post = MajorDto.Post.builder().majorCode("CPS").majorName("Computer Science").build();
String content = gson.toJson(post);
ResultActions actions = mockMvc.perform(post("/v1/major")
.accept(mediaType)
.contentType(mediaType)
.content(content)
);
ResultActions result = actions.andExpect(status().isCreated());
}
}
테스트가 실행조차 안되며 컴파일 에러 발생.
- 에러 메세지
> Task :compileJava FAILED
C:\StartDream\CodeStates\WorkSpace\Spring\side-project\from-controller_to-exception_practice\src\main\java\com\practice\example\major\mapper\MajorMapper.java:11: warning: Unmapped target properties: "majorId, studentList, professorList, subjectList".
Major majorPostDtoToMajor(MajorDto.Post dto);
^
C:\StartDream\CodeStates\WorkSpace\Spring\side-project\from-controller_to-exception_practice\src\main\java\com\practice\example\major\dto\MajorDto.java:14: error: constructor Post in class Post cannot be applied to given types;
@Builder
^
required: no arguments
found: String,String
reason: actual and formal argument lists differ in length
Note: C:\StartDream\CodeStates\WorkSpace\Spring\side-project\from-controller_to-exception_practice\src\main\java\com\practice\example\major\controller\MajorController.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
1 warning
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
1 actionable task: 1 executed
에러 내용
뭔가 맵핑 부분에서 에러가 나는것 처럼 보였다.
에러 라인이 모두 맵핑과 관련된 라인이였기 때문이다.
원인
@Builder를 쓰는 Dto에
@AllArgsConstructor 가 없어서.
해결 방법
원인이 되는것으로 추정 되는, @Builder를 쓰는 Dto에 @AllArgsConstructor 추가
결과
해결