Top Description Methods
org.easymock

public Interface IMockBuilder<T>

Known Direct Implementers
org.easymock.internal.MockBuilder
Type Parameters
<T>
type of the object being created
Imports
java.lang.reflect.Constructor, .Method

Helps the creation of partial mocks with EasyMock.

Example of usage:

public class MyClass {
    public MyClass(A a, B b) {
    }
}

public class MyClassTest {
    @Test
    public void testFoo() throws Exception {
        IMocksControl mockControl = createControl();
        A a = mockControl.createMock(A.class);
        B b = mockControl.createMock(B.class);

        MyClass myClass = createMockBuilder(MyClass.class)
                .withConstructor(a, b).createMock(mockControl);

        // Set the expectations of A and B and test some method in MyClass
    }
}

This class also has support for partial mocks as shown by the example below:

public class MyMockedClass {
    // Empty class is also valid for IMockBuilder.
    public MyMockedClass() {
    }

    public void foo(int a) {
        blah(a);
        bleh();
    }

    public void blah(int a) {
    }

    public void bleh() {
    }
}

public class MyMockedClassTest {
    @Test
    public void testFoo() throws Exception {
        MyMockedClass myMockedClass = createMockBuilder(MyMockedClass.class)
                .withConstructor().addMockedMethod("blah", int.class)
                .addMockedMethod("bleh").createMock();

        // These are the expectations.
        myMockedClass.blah(1);
        myMockedClass.bleh();
        replay(myMockedClass);

        myMockedClass.foo(1);
        verify(myMockedClass);
    }
}

Warning

There may be ambiguities when there are two different constructors with compatible types. For instance:

public class A {
}

public class B extends A {
}

public class ClassWithAmbiguity {
    public ClassWithAmbiguity(A a) {
    }

    public ClassWithAmbiguity(B b) {
    }
}
will cause problems if using withConstructor(Object...). To solve this, you can explicitly define the constructor parameter types to use by calling withConstructor(Class...) and then withArgs(Object...), like this:
createMockBuilder(MyMockedClass.class).withConstructor(A.class).withArgs(
        new A()).createMock();
Author
Henri Tremblay

Method Summary

Modifier and TypeMethod and Description
public IMockBuilder<T>

Returns:

this
addMockedMethod
(Method
method to be mocked
method
)

Adds a method to be mocked in the testing class.

public IMockBuilder<T>

Returns:

this
addMockedMethod
(String
name of the method to be mocked
methodName
)

Adds a method to be mocked in the testing class.

public IMockBuilder<T>

Returns:

this
addMockedMethod
(String
name of the method to be mocked
methodName
,
Class<?>...
types of the parameters of the method
parameterTypes
)

Adds a method to be mocked in the testing class.

public IMockBuilder<T>

Returns:

this
addMockedMethods
(String...
names of the methods to be mocked
methodNames
)

Adds methods to be mocked in the testing class.

public IMockBuilder<T>

Returns:

this
addMockedMethods
(Method...
methods to be mocked
methods
)

Adds methods to be mocked in the testing class.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createMock
(MockType
the mock type
type
)

Create mock of the request type from this builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createMock
()

Create a default mock from this builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createMock
(IMocksControl
org.easymock.IMocksControl used to create the object
control
)

Create mock from the provided mock control using the arguments passed to the builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createMock
(String
the mock name
name
,
MockType
the mock type
type
)

Create a named mock of the request type from this builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createMock
(String
the mock name
name
)

Create named mock from the provided mock control using the arguments passed to the builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createMock
(String
the mock name
name
,
IMocksControl
org.easymock.IMocksControl used to create the object
control
)

Create named mock from the provided mock control using the arguments passed to the builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createNiceMock
()

Create a nice mock from this builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createNiceMock
(String
the mock name
name
)

Create a named nice mock from this builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createStrictMock
()

Create a strict mock from this builder.

public <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
createStrictMock
(String
the mock name
name
)

Create a named strict mock from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
mock
(MockType
the mock type
type
)

Create mock of the request type from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
mock
()

Create a default mock from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
mock
(IMocksControl
org.easymock.IMocksControl used to create the object
control
)

Create mock from the provided mock control using the arguments passed to the builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
mock
(String
the mock name
name
,
MockType
the mock type
type
)

Create a named mock of the request type from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
mock
(String
the mock name
name
)

Create named mock from the provided mock control using the arguments passed to the builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
mock
(String
the mock name
name
,
IMocksControl
org.easymock.IMocksControl used to create the object
control
)

Create named mock from the provided mock control using the arguments passed to the builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
niceMock
()

Create a nice mock from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
niceMock
(String
the mock name
name
)

Create a named nice mock from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
strictMock
()

Create a strict mock from this builder.

public default <
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
R
>
R

Returns:

the newly created mock
strictMock
(String
the mock name
name
)

Create a named strict mock from this builder.

public IMockBuilder<T>

Returns:

this
withArgs
(Object...
the arguments to pass to the constructor
initArgs
)

Defines the arguments to be passed to the constructor of the class.

public IMockBuilder<T>

Returns:

this
withConstructor
(Constructor<?>
the constructor to be called
constructor
)

Defines the constructor to use to instantiate the mock.

public IMockBuilder<T>

Returns:

this
withConstructor
()

Defines the empty constructor should be called.

public IMockBuilder<T>

Returns:

this
withConstructor
(Object...
arguments of the constructor
initArgs
)

Defines the constructor parameters for the mocked class.

public IMockBuilder<T>

Returns:

this
withConstructor
(Class<?>...
the exact argument types of the constructor
argTypes
)

Defines the exact argument types for the constructor to use.

Method Detail

addMockedMethodback to summary
public IMockBuilder<T> addMockedMethod(Method method)

Adds a method to be mocked in the testing class. Each call will add a new method to the result mock. The method is searched for in the class itself as well as superclasses.

Parameters
method:Method

method to be mocked

Returns:IMockBuilder<T>

this

addMockedMethodback to summary
public IMockBuilder<T> addMockedMethod(String methodName)

Adds a method to be mocked in the testing class. Each call will add a new method to the result mock. The method is searched for in the class itself as well as superclasses. There must be no overload of the method. You will have to rely on the other addMockedMethods in this class if that is the case.

Parameters
methodName:String

name of the method to be mocked

Returns:IMockBuilder<T>

this

addMockedMethodback to summary
public IMockBuilder<T> addMockedMethod(String methodName, Class<?>... parameterTypes)

Adds a method to be mocked in the testing class. Each call will add a new method to the result mock. The method is searched for in the class itself as well as superclasses.

Parameters
methodName:String

name of the method to be mocked

parameterTypes:Class<?>[]

types of the parameters of the method

Returns:IMockBuilder<T>

this

addMockedMethodsback to summary
public IMockBuilder<T> addMockedMethods(String... methodNames)

Adds methods to be mocked in the testing class. Same as addMockedMethod(String) but to mock many methods at once.

Parameters
methodNames:String[]

names of the methods to be mocked

Returns:IMockBuilder<T>

this

addMockedMethodsback to summary
public IMockBuilder<T> addMockedMethods(Method... methods)

Adds methods to be mocked in the testing class. Same as addMockedMethod(Method) but to mock many methods at once.

Parameters
methods:Method[]

methods to be mocked

Returns:IMockBuilder<T>

this

createMockback to summary
public <R> R createMock(MockType type)

Create mock of the request type from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
type:MockType

the mock type

Returns:R

the newly created mock

Since
3.2
createMockback to summary
public <R> R createMock()

Create a default mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
Returns:R

the newly created mock

createMockback to summary
public <R> R createMock(IMocksControl control)

Create mock from the provided mock control using the arguments passed to the builder.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
control:IMocksControl

org.easymock.IMocksControl used to create the object

Returns:R

the newly created mock

createMockback to summary
public <R> R createMock(String name, MockType type)

Create a named mock of the request type from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

type:MockType

the mock type

Returns:R

the newly created mock

Since
3.2
createMockback to summary
public <R> R createMock(String name)

Create named mock from the provided mock control using the arguments passed to the builder.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

Returns:R

the newly created mock

createMockback to summary
public <R> R createMock(String name, IMocksControl control)

Create named mock from the provided mock control using the arguments passed to the builder.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

control:IMocksControl

org.easymock.IMocksControl used to create the object

Returns:R

the newly created mock

createNiceMockback to summary
public <R> R createNiceMock()

Create a nice mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
Returns:R

the newly created mock

createNiceMockback to summary
public <R> R createNiceMock(String name)

Create a named nice mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

Returns:R

the newly created mock

createStrictMockback to summary
public <R> R createStrictMock()

Create a strict mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
Returns:R

the newly created mock

createStrictMockback to summary
public <R> R createStrictMock(String name)

Create a named strict mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

Returns:R

the newly created mock

mockback to summary
public default <R> R mock(MockType type)

Create mock of the request type from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
type:MockType

the mock type

Returns:R

the newly created mock

Since
4.0
mockback to summary
public default <R> R mock()

Create a default mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
Returns:R

the newly created mock

Since
4.0
mockback to summary
public default <R> R mock(IMocksControl control)

Create mock from the provided mock control using the arguments passed to the builder.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
control:IMocksControl

org.easymock.IMocksControl used to create the object

Returns:R

the newly created mock

Since
4.0
mockback to summary
public default <R> R mock(String name, MockType type)

Create a named mock of the request type from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

type:MockType

the mock type

Returns:R

the newly created mock

Since
4.0
mockback to summary
public default <R> R mock(String name)

Create named mock from the provided mock control using the arguments passed to the builder.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

Returns:R

the newly created mock

Since
4.0
mockback to summary
public default <R> R mock(String name, IMocksControl control)

Create named mock from the provided mock control using the arguments passed to the builder.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

control:IMocksControl

org.easymock.IMocksControl used to create the object

Returns:R

the newly created mock

Since
4.0
niceMockback to summary
public default <R> R niceMock()

Create a nice mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
Returns:R

the newly created mock

Since
4.0
niceMockback to summary
public default <R> R niceMock(String name)

Create a named nice mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

Returns:R

the newly created mock

Since
4.0
strictMockback to summary
public default <R> R strictMock()

Create a strict mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
Returns:R

the newly created mock

Since
4.0
strictMockback to summary
public default <R> R strictMock(String name)

Create a named strict mock from this builder. The same builder can be called to create multiple mocks.

Parameters
<R>
the returned type. In general T == R but when mocking a generic type, it won't so to be nice with the caller, we return a different type
name:String

the mock name

Returns:R

the newly created mock

Since
4.0
withArgsback to summary
public IMockBuilder<T> withArgs(Object... initArgs)

Defines the arguments to be passed to the constructor of the class. The types of the arguments must match those previously defined with withConstructor(Class...) or withConstructor(Constructor).

Parameters
initArgs:Object[]

the arguments to pass to the constructor

Returns:IMockBuilder<T>

this

withConstructorback to summary
public IMockBuilder<T> withConstructor(Constructor<?> constructor)

Defines the constructor to use to instantiate the mock. It is expected that you call withArgs with the actual constructor argument values after this.

Parameters
constructor:Constructor<?>

the constructor to be called

Returns:IMockBuilder<T>

this

withConstructorback to summary
public IMockBuilder<T> withConstructor()

Defines the empty constructor should be called.

Returns:IMockBuilder<T>

this

withConstructorback to summary
public IMockBuilder<T> withConstructor(Object... initArgs)

Defines the constructor parameters for the mocked class. The builder will automatically find a constructor with compatible argument types. This throws an exception if there is more than one constructor which would accept the given parameters.

Parameters
initArgs:Object[]

arguments of the constructor

Returns:IMockBuilder<T>

this

withConstructorback to summary
public IMockBuilder<T> withConstructor(Class<?>... argTypes)

Defines the exact argument types for the constructor to use. It is expected that you call withArgs with the actual constructor argument values after this.

Parameters
argTypes:Class<?>[]

the exact argument types of the constructor

Returns:IMockBuilder<T>

this