2011-04-23 22 views
15

Con JMock:con (cualquier (CLASS.CLASS))) con JMock

context.checking(new Expectations() {{ 
    // Other oneOf() will() statements ... 

    oneOf(shopAccount).enter(100, with(any(String.class))); 
    will(returnValue(true)); 

    // Other oneOf() will() statements ... 
}}); 

la siguiente excepción serán levantados durante la ejecución:

java.lang.IllegalArgumentException: no todos los parámetros se les asignaron equivalentes explícitos: o bien todos los parámetros deben ser especificados por los evaluadores o todos deben estar especificados por valores; no se pueden mezclar los evaluadores y los valores.

¿Por qué no puedo hacer esto? usando with(any(Klass.class))?

Respuesta

19

si se utiliza una cláusula with para cualquier parámetro, debe utilizarlos para todos los parámetros, tratar

Oneof (shopAccount) .enter (con (equalTo (100)), con (cualquier (String.class)));

+1

¿No es 'con (igual (100))', 'no equalTo'? – Lukas

+0

es decir 'igual()', entonces ese es un método en Object que devuelve un valor booleano. 'equalto()' es un método de coincidencia estático que devuelve un matcher. –

+1

@Lukas 'org.jmock.Expectations.equal (T)' y 'org.hamcrest.core.IsEqual.equalTo (T)' se definen de manera equivalente (al menos en las versiones JMock-2.5.1 y junit-4.8.2) , entonces cualquiera de los dos funcionaría. –

Cuestiones relacionadas