java - Junit中的自动装配
问题描述
我正在尝试从上下文中自动装配两个对象,但似乎在Configuraiton
和上都出现了 Nullpointer 异常JavaMailSender
,我可能会丢失什么。如果我只是自动装配EmailService
,它可以正常工作,但是我需要将一个模拟对象传递给构造函数,这就是为什么我要按照现在的方式进行操作。如果我用 注释我的EmailService
对象@Autowire
,它就可以工作。
@SpringBootTest
public class EmailServiceTest {
@Autowired
private Configuration configuration;
@Autowired
private JavaMailSender javaMailSender;
private AuthUser authUser = Mockito.mock(AuthUser.class);
private EmailService emailService = new EmailService(javaMailSender,configuration,authUser);
@Test
public void testSendAttachment() throws IOException {
List<Attachment> attachments = new ArrayList<>();
attachments.add(new Attachment(new Archive(TestData.getDocs(), "test").getZipArchive(), "documents.zip"));
attachments.add(new Attachment(new Archive(TestData.getDocs(), "test").getZipArchive(), "documents2.zip"));
Email mail = new Email("a",
"b",
"Requested archive attached",
"Thank you for using our services, please refer to the attached archive", attachments);
emailService.sendMailWithAttachment(mail);
}
@Test
public void shouldSendConfirmationEmail(){
Mockito.when(authUser.getUsername()).thenReturn("email@email.com");
emailService.sendConfirmationToCooperateEmail();
}
解决方案
Spring 创建 EmailServiceTest.java 属性 Configuration 和 EmailService 默认为空,因为我们在属性电子邮件服务上初始化 EmailService 权限立即获取空值,然后 Spring 才将值注入 Configuration 和 EmailSender。
@Autowired
private Configuration configuration;
@Autowired
private JavaMailSender javaMailSender;
private AuthUser authUser = Mockito.mock(AuthUser.class);
@Test
public void testSendAttachment() throws IOException {
EmailService emailService = new EmailService(javaMailSender, configuration, authUser);
推荐阅读
- c++ - 你如何发现或避免一次次犯错?
- hadoop - 失败:执行错误,返回代码 2. Hive on apache ubuntu
- c++ - 如何在 C++ 中订购具有重复值的地图?
- python - 即使类型正确,Flask NoneType 错误也会随机出现,有时它会随机出现
- elixir - 根据批量计算数量
- reactjs - 如何在 Kibana 7.12 上自定义导航栏徽标
- apache-spark - 火花读写avro与kafka失败
- azure-active-directory - 用于 SPA 的 MSAL JS 目录选择器(切换目录)组件
- java - 移动网络扫描仪(面向 rssi)
- flutter - 有没有办法在 Dart 的循环中使用三元表达式和 continue 语句