java - How to verify the order of mocks without explicitly defining the order of methods? -



java - How to verify the order of mocks without explicitly defining the order of methods? -

here method tested:

protected void mymethod(final myobject object) { object.setx(...); object.sety(...); myobjectrepository.update(object); }

in order verify order of calls -so repository called after setter calls- needed create mock of myobject (since inorder works mocks). at end should this:

@mock private myobjectrepository myobjectrepositorymock; @test public void testmymethod() { myobject myobjectmock = mock(myobject.class); inorder inorder = mockito.inorder(myobjectmock, myobjectrepositorymock); // run test ..... inorder.verify(myobjectmock); inorder.verify(myobjectrepositorymock).update(myobjectmock); }

.. see exception:

.. unfinishedverificationexception missing method phone call verify(mock) here: ... illustration of right verification: verify(mock).dosomething()

since not have verify order of setter calls, grouping them , sth "first mock, method of mock argument should called"..

i not want define exact order this:

inorder.verify(myobjectmock).setx(..); inorder.verify(myobjectmock).sety(..); inorder.verify(myobjectrepositorymock).update(myobjectmock);

is there way of doing this?

you can verify fields assertequals within of doanswer()

object.setx(-1); mockito.doanswer(new answer<void>() { public void answer(invocationonmock invocation) throws throwable { assertequals(1, object.getx()); homecoming null; } }).when(myobjectrepositorymock).update(object);

that way, order of calls doesn't matter; matters @ time of update() call, right value in right place.

java unit-testing junit mocking mockito

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -