gpt4 book ai didi

java - 使用 EasyMock 进行单元测试时出现意外的方法调用

转载 作者:行者123 更新时间:2023-12-01 19:14:12 24 4
gpt4 key购买 nike

我正在使用 UnitilsJUnit4 和 EasyMock 测试代码中的邮件功能。

我的代码是这样的..

public void prepare(MimeMessage mimeMessage) {
// some code ..
MimeMessageHelper message = new MimeMessageHelper( mimeMessage, true );
// some mail settings ..

}

当我测试方法prepare时,它给出了以下异常..但下面显示的方法来自Spring框架类。

java.lang.AssertionError: 
Unexpected method call setContent(javax.mail.internet.MimeMultipart@6e616e61):
setContent(javax.mail.internet.MimeMultipart@2dda2dda): expected: 1, actual: 0
at $javax.mail.internet.MimeMessage$$EnhancerByCGLIB$$614de43f.setContent(<generated>)
at org.springframework.mail.javamail.MimeMessageHelper.createMimeMultiparts(MimeMessageHelper.java:344)
at org.springframework.mail.javamail.MimeMessageHelper.<init>(MimeMessageHelper.java:290)
at org.springframework.mail.javamail.MimeMessageHelper.<init>(MimeMessageHelper.java:247)
at org.springframework.mail.javamail.MimeMessageHelper.<init>(MimeMessageHelper.java:226)

请帮我解决上述问题..如何测试我的方法?

最佳答案

我知道这是很久以前写的,但我刚刚遇到了同样的问题。

如果您可以以某种形式模拟 MimeMessageHelper,则可以轻松测试代码。为此,我创建了一个接口(interface),该接口(interface)仅提供回 MimeMessageHelper 类,并将其添加为我正在测试的类的依赖项。

界面:

public interface MimeMessageHelperProvider {
MimeMessageHelper getMimeMessageHelper(MimeMessage mimeMessage);
}

实现:

public class MimeMessageHelperProviderImpl implements MimeMessageHelperProvider {
@Override
public MimeMessageHelper getMimeMessageHelper(MimeMessage mimeMessage) {
return new MimeMessageHelper(mimeMessage);
}
}

现在您可以连接 MimeMessageHelperProvider 并简单地模拟该接口(interface),让它返回您可以验证的实例。

关于java - 使用 EasyMock 进行单元测试时出现意外的方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7429997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com