无法使用EasyMock编写内部类的测试用例

时间:2011-09-23 05:53:23

标签: java unit-testing junit easymock

我是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..
        }
    }

感谢。

1 个答案:

答案 0 :(得分:1)

首先,你需要考虑什么是阶级责任。 它应该在做谁应该说话?

一旦您清楚地确定了依赖关系,就需要了解如何在代码中处理它们。 您可能需要执行一些重构以符合依赖性反转原则。 例如,在这里你有一个对MailSender类的依赖,但你将无法模拟它,因为这个依赖是“硬编码”。

有一个很好的视频:http://www.youtube.com/watch?v=XcT4yYu_TTs