0

所以我添加了 jMock 2.5.1 中的所有 jars

尝试关注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,但它似乎不允许传递参数。

4

1 回答 1

1

该教程使用已过时的 JMock 1。在 JMock 2 中,Mock类已被取消,替换为Mockery和泛型。

代替

Mock mockCollaborator = new Mock(ICollaborator.class);

你会做的

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

wheremockery是 type 的字段Mockery

我建议完全忽略该教程,并使用JMock 网站上的教程。

于 2012-01-08T13:22:37.987 回答