【发布时间】:2011-09-23 05:53:22
【问题描述】:
我是 EasyMock 的新手。我需要使用 EasyMock 测试我的课程。但这里的问题是我的类有内部类,这个内部类在外部类的方法中被实例化,并通过传递一些参数来调用内部类的方法。我不确定如何为这种情况编写测试用例。
请帮我写这个测试用例。
非常感谢任何帮助或建议。
public class ServiceClass implements ServiceInterface {
public void updateUSer(USer) {
//some logic over here.
sendEmailNotice(subject, vTemplate);
}
private sendEmailNotice(subject, vTemplate) {
MimeMessagePrepator eNotice = new PrepareEmailNotice(subject, vTemplate);
MailSender.send( eNotice );
}
public class PrepareEmailNotice implements MimeMessagePrepator {
// some local variables.
public PrepareEmailNotice(subject, vTemplate) {
subject = subject;
vTemplate = vTemplate;
}
public void prepare( MimeMessage message) {
MimeMessageHealper helper = new MimeMessageHealper(message, true);
// setting the mail properties like subject, to address, etc..
}
}
谢谢。
【问题讨论】:
-
您提供的代码无效 - 您没有为某些参数指定类型。也不清楚你想在这里模拟什么——你对什么依赖感兴趣?
-
Jon,代码中指定的所有参数(主题,vTemplate)都是字符串。我正在寻找解决方案,例如如何模拟内部类以及如何在单元测试中覆盖该内部类方法。
-
您确定需要模拟内部类而不是内部类使用的东西(例如
MimeMessageHealper)吗?想想你真正希望依赖是什么——一旦你解决了这个问题,你应该模拟出那些依赖。 -
我在这里给这个类留下了一个可能的测试:stackoverflow.com/questions/7510453/…
标签: java unit-testing junit easymock