inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링과 JPA 기반 웹 애플리케이션 개발

회원 가입 리팩토링 및 테스트

then(javaMailSender) 에서 import가 되지 않습니다.

503

tlsdnr1135

작성한 질문수 11

0

11분 40초 쯤에서 

then(javaMailSender).should().send(any(SimpleMailMessage.class));

이 부분에서 then이 임포트가 되지 않습니다..
org.mockito.core 를 따로 쳐서 임포트 해보려 했지만 
뜨지 않습니다.

전체코드입니다.

 

 

package com.wook.demo.account;

import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;

import org.mockito.configuration.*;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
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 org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.mockito.BDDMockito.Then;
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;

@SpringBootTest
@AutoConfigureMockMvc
public class AccountControllerTest {
	
	@Autowired
	private MockMvc mockMvc;
	
	@Autowired
	private AccountRepository accountRepository;
	
	@MockBean
	private JavaMailSender javaMailSender;
	
	@DisplayName("회원 가입 화면 보이는지 테스트")
	@Test
	void signpForm() 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", "shinwook")
			.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", "shinwook")
			.param("email", "email@naver.com")
			.param("password", "12345678")
			.with(csrf()))
			.andExpect(status().is3xxRedirection())
			.andExpect(view().name("redirect:/"));
		
		assertTrue(accountRepository.existsByEmail("email@naver.com"));
		
		then(javaMailSender).should().send(any(SimpleMailMessage.class));
		
	}
	
}

 

 

 

 

 

 

 

 

 

 

 

 

spring JPA thymeleaf spring-boot java

답변 1

0

백기선

import org.mockito.BDDMockito.Then;

이 부분을 이렇게 바꿔보세요.

import static org.mockito.BDDMockito.*;

Study 개설하는 로직에 대해서 궁금점이 있습니다.

0

72

1

앱 재시작 후 회원가입

0

121

1

app.host 관련 질문이 있습니다

0

106

1

강의 버전 정보

0

136

1

event, study 참조

0

238

2

비밀번호 변경 로직 질문있습니다.

0

145

1

프로필 수정 처리 merge 질문입니다.

0

117

1

회원가입 성공 후 redirect이동시 권한 질문

0

516

3

HtmlEmailService 개발하다 생긴 의문입니다

0

261

2

postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다

0

443

2

수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다

0

272

2

[긴급-재업로드]수업질문 로그인 안 되는 문제

0

247

1

[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요

0

285

1

cropper 오류 문제로 질문드립니다..

0

295

2

authentication관련 질문...

0

504

2

모임참가 취소 할때 로직 질문

0

363

3

안녕하세요 기선님 질문이있습니다..

0

237

1

HTML코드 및 강의 중간자료들

0

689

3

springSecurity

0

532

2

버전 질문입니다.

0

311

1

부트스트랩, css

0

363

2

영속성 컨텍스트 질문

0

257

2

다시 강의를 보니 드는생각..

0

359

2

5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?

0

320

1