회원 가입 리팩토링 및 테스트 영상 질문입니다.
351
작성한 질문수 3
@DisplayName("회원 가입 처리 - 입력값 정상")
@Test
void signUpSubmit_with_correct_input() throws Exception {
mockMvc.perform(post("/sign-up")
.param("nickname", "keesun")
.param("email", "email@gmail.com")
.param("password", "12345678")
.with(csrf()))
.andExpect(status().is3xxRedirection())
.andExpect(view().name("redirect:/"));
assertTrue(accountRepository.existsByEmail("email@gmail.com"));
BDDMockito.then(JavaMailSender).should().send(any(SimpleMailMessage.class));
}
회원 가입 처리 - 입력값 정상 테스트의 마지막줄인
BDDMockito.then(JavaMailSender).should().send(any(SimpleMailMessage.class));
쪽이 인식을 못하고 빨간줄을 내보냅니다.
영상에서는
then(JavaMailSender).should().send(any(SimpleMailMessage.class));
코드인데 then 앞에 BDDMockito.를 선언 안하면 아예 인식을 못하더군요.
BDDMockito를 사용하여 then을 인식시키면
에러가 뜹니다.
.send(any(SimpleMailMessage.class)); 센드쪽에서 any들어가는걸 인식 못하는것 같은데 junit을 써본적이 없어서 이부분을 잘 모르겠습니다.
어디가 잘못 된건지 알 수 있을까요???
spring boot version 2.4.2 입니다.
java 11입니다.
=======================================================================================
package com.studyolle;
import static org.hamcrest.CoreMatchers.any;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view;
import javax.mail.internet.MimeMessage;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.mockito.BDDMockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.test.web.servlet.MockMvc;
import com.studyolle.account.AccountRepository;
@SpringBootTest
@AutoConfigureMockMvc
class AppTests {
@Autowired private MockMvc mockMvc;
@Autowired private AccountRepository accountRepository;
@MockBean
JavaMailSender JavaMailSender;
@DisplayName("회원 가입 화면 보이는지 테스트")
@Test
void signUpForm() throws Exception {
mockMvc.perform(get("/sign-up"))
.andDo(print())
.andExpect(status().isOk())
.andExpect(view().name("account/sign-up"))
.andExpect(model().attributeExists("signUpForm"));
}
@DisplayName("회원 가입 처리 - 입력값 오류")
@Test
void signUpSubmit_with_wrong_input() throws Exception {
mockMvc.perform(post("/sign-up")
.param("nickname", "keesun")
.param("email", "email..")
.param("password", "12345")
.with(csrf()))
.andExpect(status().isOk())
.andExpect(view().name("account/sign-up"));
}
@DisplayName("회원 가입 처리 - 입력값 정상")
@Test
void signUpSubmit_with_correct_input() throws Exception {
mockMvc.perform(post("/sign-up")
.param("nickname", "keesun")
.param("email", "email@gmail.com")
.param("password", "12345678")
.with(csrf()))
.andExpect(status().is3xxRedirection())
.andExpect(view().name("redirect:/"));
assertTrue(accountRepository.existsByEmail("email@gmail.com"));
BDDMockito.then(JavaMailSender).should().send (any(SimpleMailMessage.class));
}
}
답변 1
0
import 문이 겹쳐서 그래요. 다른 import 문 중에 then을 이미 static import하는 곳이 있습니다. 그래서 둘 중 하나는 명시적으로 어디에 있는 then인지 직접 써줘야 하는거죠.
Study 개설하는 로직에 대해서 궁금점이 있습니다.
0
55
1
앱 재시작 후 회원가입
0
101
1
app.host 관련 질문이 있습니다
0
97
1
강의 버전 정보
0
125
1
event, study 참조
0
218
2
비밀번호 변경 로직 질문있습니다.
0
135
1
프로필 수정 처리 merge 질문입니다.
0
106
1
회원가입 성공 후 redirect이동시 권한 질문
0
490
3
HtmlEmailService 개발하다 생긴 의문입니다
0
248
2
postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다
0
429
2
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
0
259
2
[긴급-재업로드]수업질문 로그인 안 되는 문제
0
235
1
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
0
277
1
cropper 오류 문제로 질문드립니다..
0
285
2
authentication관련 질문...
0
495
2
모임참가 취소 할때 로직 질문
0
350
3
안녕하세요 기선님 질문이있습니다..
0
229
1
HTML코드 및 강의 중간자료들
0
679
3
springSecurity
0
519
2
버전 질문입니다.
0
300
1
부트스트랩, css
0
353
2
영속성 컨텍스트 질문
0
248
2
다시 강의를 보니 드는생각..
0
350
2
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
0
312
1





