From 85c354144527884c23bc516e60fb20ba11afdaff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Sat, 1 Aug 2020 12:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9emailService=E7=9A=84bean?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/cn/celess/blog/BaseTest.java | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/test/java/cn/celess/blog/BaseTest.java b/src/test/java/cn/celess/blog/BaseTest.java index 6676f90..42c1cc3 100644 --- a/src/test/java/cn/celess/blog/BaseTest.java +++ b/src/test/java/cn/celess/blog/BaseTest.java @@ -4,8 +4,11 @@ package cn.celess.blog; import cn.celess.blog.entity.Response; import cn.celess.blog.entity.model.UserModel; import cn.celess.blog.entity.request.LoginReq; +import cn.celess.blog.service.MailService; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -15,6 +18,7 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.http.MediaType; +import org.springframework.mail.SimpleMailMessage; import org.springframework.mock.web.MockHttpSession; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; @@ -29,6 +33,7 @@ import org.springframework.web.context.WebApplicationContext; import java.io.IOException; import java.io.UnsupportedEncodingException; +import java.lang.reflect.Field; import java.util.Map; import java.util.UUID; @@ -261,4 +266,54 @@ public class BaseTest { return null; } + + /** + * 修改 mailService 的实现类 + * + * @param service service 类 + * @param mailFiledName service 中自动注入的mailService字段名 + */ + protected void mockEmailServiceInstance(Object service, String mailFiledName) { + Field mailServiceField; + try { + mailServiceField = service.getClass().getDeclaredField(mailFiledName); + mailServiceField.setAccessible(true); + mailServiceField.set(service, new TestMailServiceImpl()); + } catch (NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + } + + + @Slf4j + protected static class TestMailServiceImpl implements MailService { + + @Override + public Boolean AsyncSend(SimpleMailMessage message) { + log.debug("异步邮件请求,SimpleMailMessage:[{}]", getJson(message)); + return true; + } + + @Override + public Boolean send(SimpleMailMessage message) { + log.debug("邮件请求,SimpleMailMessage:[{}]", getJson(message)); + return true; + } + + /** + * 转json + * + * @param o + * @return + */ + private String getJson(Object o) { + ObjectMapper mapper = new ObjectMapper(); + try { + return mapper.writeValueAsString(o); + } catch (JsonProcessingException e) { + return null; + } + } + } + }