Mockito测试无效方法
我有以下代码要测试:
public class MessageService {
    private MessageDAO dao;
    public void acceptFromOffice(Message message) {
        message.setStatus(0);
        dao.makePersistent(message);
        message.setStatus(1);
        dao.makePersistent(message);
    }
    public void setDao (MessageDAO mD) { this.dao = mD; }
}
public class Message {
    private int status;
    public int getStatus () { return status; }
    public void setStatus (int s) { this.status = s; }
    public boolean equals (Object o) { return status == ((Message) o).status; }
    public int hashCode () { return status; }
}
我需要验证,该方法接受FromOffice是否真的将状态设置为0,而不是持久化消息,然后将其状态设置为1,然后再次持久化。
使用Mockito,我试图做到以下几点:
@Test
    public void testAcceptFromOffice () throws Exception {
        MessageDAO messageDAO = mock(MessageDAO.class);
        MessageService messageService = new MessageService();
        messageService.setDao(messageDAO);
        final Message message = spy(new Message());
        messageService.acceptFromOffice(message);
        verify(messageDAO).makePersistent(argThat(new BaseMatcher<Message>() {
            public boolean matches (Object item) {
                return ((Message) item).getStatus() == 0;
            }
            public void describeTo (Description description) { }
        }));
        verify(messageDAO).makePersistent(argThat(new BaseMatcher<Message>() {
            public boolean matches (Object item) {
                return ((Message) item).getStatus() == 1;
            }
            public void describeTo (Description description) { }
        }));
    }
我实际上希望在这里验证使用不同 Message 对象的状态调用 makePersistent 方法的两次。但它没有说
参数是不同的!
有什么线索吗?