2012-01-08 5 views
0

поэтому я добавил все банки из JMock 2.5.1org.jmock.Mock больше не доступен?

При попытке следовать 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.Mock вместо этого предлагает Mockery. Я пытался использовать Mockery, но, похоже, это не позволяет передавать аргумент.

ответ

1

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

Вместо

Mock mockCollaborator = new Mock(ICollaborator.class); 

вы могли бы сделать

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

где mockery является полем типа Mockery.

Предлагаю полностью игнорировать этот учебник и использовать те, что указаны на JMock website.

Смежные вопросы