EasyMock Не делать различий между подклассами - PullRequest
1 голос
/ 16 сентября 2011

Учитывая следующее

class Event{
}

class SpecialEvent extends Event{

}

class OtherEvent extends Event{

}

class EventPublisher{
   public publish(Event e){
   }
}

@test
testBlah{
   myService = new MyService();

   mockEvent = createMock(EventPublisher)
   mySercice.setEventPublisher(mockEvent);
   mockEvent.publish(anyObject(SpecialEvent.class));
   expectLastCall.once();
   replay(mockEvent);
   myServce.doSomethingThatCauesesSpecialEventToBePublished();
   verify(mockEvent);
}

Если myService.doSomething .... Публикует событие, не являющееся SpecialEvent.class, оно не проходит проверку, пока событие продолжается от Event.Есть ли способ убедиться, что это не удалось?

1 Ответ

3 голосов
/ 16 сентября 2011

anyObject будет соответствовать любому объекту - класс просто меняет тип возвращаемого значения. Я подозреваю, что вы хотите isA:

mockEvent.publish(isA(SpecialEvent.class));
...