Невозможно написать тестовые сценарии для внутреннего класса, используя EasyMock - PullRequest
1 голос
/ 23 сентября 2011

Я новичок в 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 Ответ

1 голос
/ 26 сентября 2011

Прежде всего вам нужно подумать о том, что такое классовая ответственность.Должно ли оно быть с тем, с кем оно должно говорить?

После того, как вы четко определили зависимости, вам нужно посмотреть, как вы можете обрабатывать их в своем коде.Вам может потребоваться выполнить некоторый рефакторинг, чтобы соответствовать принципу инверсии зависимостей.Например, здесь у вас есть зависимость от класса MailSender, но вы не сможете ее смоделировать, поскольку эта зависимость «жестко запрограммирована».

Есть хорошее видео об этом: http://www.youtube.com/watch?v=XcT4yYu_TTs

...