Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

java.lang.IllegalStateException.When using EasyMock!

356 views
Skip to first unread message

vysh

unread,
Sep 26, 2007, 8:03:26 AM9/26/07
to
Hi everyone,
I am using EasyMock in my junit testcases.But it
is giving an exception, which I failed to resolve.

This is my code
------------------------


SOAPHeader unsubHead =
currCntxt.getMessage().getSOAPHeader();

Here currCntxt is a MessageContext object.I need to expect this
particular method.

My test class contains this code.

MessageContext currCntxt =
EasyMock.createMock(MessageContext.class);
SOAPHeader sphead =
EasyMock.createMock(SOAPHeader.class);


EasyMock.expect(currCntxt.getMessage().getSOAPHeader()).andReturn(sphead).once();

replay(currCntxt);
replay(sphead);

but its giving the follwing exception.

Caused an ERROR
0 matchers expected, 1 recorded.
java.lang.IllegalStateException: 0 matchers expected, 1 recorded.
at
org.easymock.internal.ExpectedInvocation.createMissingMatchers(ExpectedInvocation.java:
42)
at
org.easymock.internal.ExpectedInvocation.<init>(ExpectedInvocation.java:
34)
at
org.easymock.internal.ExpectedInvocation.<init>(ExpectedInvocation.java:
26)
at org.easymock.internal.RecordState.invoke(RecordState.java:64)
at
org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:
24)
at
org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:
56)

It would me helpful if anyone could put some lights on the issue.

thanks,
vysh

GArlington

unread,
Sep 26, 2007, 11:36:11 AM9/26/07
to


As far as I can see your problem is here:
> EasyMock.expect(currCntxt.getMessage().getSOAPHeader()).andReturn(sphead).once();
should be
EasyMock.expect(currCntxt.getMessage().getSOAPHeader()).andReturn(sphead.class).once();
if you are checking for type, or you should currCntxt message
SOAPHeader to sphead ifyou are expecting the value...

Lew

unread,
Sep 26, 2007, 4:46:29 PM9/26/07
to
GArlington wrote:
> As far as I can see your problem is here:
>> EasyMock.expect(currCntxt.getMessage().getSOAPHeader()).andReturn(sphead).once();
> should be
> EasyMock.expect(currCntxt.getMessage().getSOAPHeader()).andReturn(sphead.class).once();
> if you are checking for type, or you should currCntxt message
> SOAPHeader to sphead ifyou are expecting the value...

If 'sphead' is a class, it should be spelled with an initial upper-case
letter, by convention. Likewise, the 'H' of 'Head' should be upper case, by
convention.

If 'sphead' is a variable, the 'H' should still be upper case (by convention),
and the class should be obtained through the instance method 'getClass()'
instead of the class variable 'class'.

--
Lew

Roedy Green

unread,
Sep 26, 2007, 6:39:27 PM9/26/07
to
>If 'sphead' is a class, it should be spelled with an initial upper-case
>letter, by convention. Likewise, the 'H' of 'Head' should be upper case, by
>convention.
>If 'sphead' is a variable, the 'H' should still be upper case (by convention),
>and the class should be obtained through the instance method 'getClass()'
>instead of the class variable 'class'.
see http://mindprod.com/jgloss/codingconventions.html
--
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com
0 new messages