org.jmock.Mock больше не доступен? - PullRequest
0 голосов
/ 08 января 2012

, поэтому я добавил все банки из jMock 2.5.1

При попытке следовать http://www.ibm.com/developerworks/opensource/library/os-eclipse-rmock/index.html

import org.jmock.Mock;
import org.jmock.cglib.MockObjectTestCase;
public class ServiceClassTest extends MockObjectTestCase {
    private ServiceClass serviceClass;
    private Mock mockCollaborator;
    private ICollaborator collaborator;

    public void setUp(){
        serviceClass = new ServiceClass();
        mockCollaborator = new Mock(ICollaborator.class);
    }

    public void testRunServiceAndReturnFalse(){
        mockCollaborator.expects(once()).method\
              ("executeJob").will(returnValue("failure"));
        collaborator = (ICollaborator)mockCollaborator.proxy();
        boolean result = serviceClass.runService(collaborator);
        assertFalse(result);
    }
}

однако, это не работает?Он не может найти org.jmock. Вместо этого предложите Mockery.Я пытался использовать Mockery, но он не позволяет передавать аргумент.

1 Ответ

1 голос
/ 08 января 2012

В этом руководстве используется JMock 1, который устарел. В JMock 2 класс Mock был ликвидирован, заменен на Mockery и generics.

Вместо

Mock mockCollaborator = new Mock(ICollaborator.class);

вы бы сделали

ICollaborator mockCollaborator  = mockery.mock(ICollaborator.class);

, где mockery - поле типа Mockery.

Я предлагаю полностью игнорировать это руководство и использовать его на сайте JMock .

...