I have the following question regarding the design of a specific Unit Test:
I would like to unit test a function that takes a certain object as input,
processes it and when it finished, the state of that object should have been changed to a certain value.
As I want to do "real" unit testing (as I understand it), I only want to use the class that is providing the processing function,
and mock all other classes used.
To fulfill this requirement I need to mock the object that is being processed; but when it is only a mock, it has no real state anymore that could be changed.
object = createMock('SomeClassName');
assertEquals(expected = 1, actual = object.getState());
The problem is that I need to mock the "getState" method to prepare the starting state for the test, and so
afterwards I cannot use the real method anymore.
Do you know how can I achieve this, or how I should change the design of the test?
PS: I am actually using PHPUnit and Mockery.
Thank you for any advice.