mock.java
来自「不管是测试驱动开发或者是其它的开发模式」· Java 代码 · 共 98 行
JAVA
98 行
/* Copyright (c) 2000-2004 jMock.org
*/
package org.jmock;
import java.util.HashMap;
import junit.framework.AssertionFailedError;
import org.jmock.builder.*;
import org.jmock.core.*;
public class Mock
implements DynamicMock, BuilderNamespace, Verifiable
{
DynamicMock coreMock;
HashMap idTable = new HashMap();
public Mock( Class mockedType ) {
this(mockedType, CoreMock.mockNameFromClass(mockedType));
}
public Mock( Class mockedType, String name ) {
this(new CoreMock(mockedType, name));
}
public Mock( DynamicMock coreMock ) {
this.coreMock = coreMock;
}
public Class getMockedType() {
return coreMock.getMockedType();
}
public Object proxy() {
return coreMock.proxy();
}
public String toString() {
return coreMock.toString();
}
public void verify() {
coreMock.verify();
}
public void addInvokable( Invokable invokable ) {
coreMock.addInvokable(invokable);
}
public NameMatchBuilder stubs() {
return addNewInvocationMocker();
}
public NameMatchBuilder expects( InvocationMatcher expectation ) {
NameMatchBuilder builder = addNewInvocationMocker();
builder.match(expectation);
return builder;
}
private NameMatchBuilder addNewInvocationMocker() {
InvocationMocker mocker = new InvocationMocker(new InvocationMockerDescriber());
addInvokable(mocker);
return new InvocationMockerBuilder( mocker, this, getMockedType() );
}
public void setDefaultStub( Stub newDefaultStub ) {
coreMock.setDefaultStub(newDefaultStub);
}
public void reset() {
coreMock.reset();
}
public MatchBuilder lookupID( String id ) {
if (!idTable.containsKey(id)) {
throw new AssertionFailedError("no expected invocation named '" + id + "'");
}
return (MatchBuilder)idTable.get(id);
}
public void registerUniqueID( String id, MatchBuilder builder ) {
if (idTable.containsKey(id)) {
throw new AssertionFailedError("duplicate invocation named \"" + id + "\"");
}
storeID(id, builder);
}
public void registerMethodName( String id, MatchBuilder builder ) {
storeID(id, builder);
}
private void storeID( String id, IdentityBuilder builder ) {
idTable.put(id, builder);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?