php-mock-phpunit icon indicating copy to clipboard operation
php-mock-phpunit copied to clipboard

Exception Message is unclear

Open jmauerhan opened this issue 8 years ago • 3 comments

First of all I just want to say I really like the library, thank you so much for creating it :)

I do think this Exception Message should be improved.

When I create a mocked function like so:

$passthru = $this->getFunctionMock('My\Project', 'passthru');
$passthru->expects($this->exactly(2))->withConsecutive(['arg1'], ['arg2']);

The error message that I get when the test fails (because the code being tested doesn't actually call passthru() yet) is like this:

1) Tests\MyProjectTest::myTestMethod 
Expectation failed for method name is equal to <string:delegate> when invoked 2 time(s).       
Method was expected to be called 2 times, actually called 0 times.                                                                                                                        

Instead of <string:delegate> it would be helpful if it said passthru, or even better, something like: Expectation failed for passthru to be invoked 2 time(s)

I know the matchers and exceptions come from PHPUnit, but is there a way to send in better messages?

jmauerhan avatar Apr 26 '16 12:04 jmauerhan

I noticed this already and started to fix that in the branch useful-message. Unfortunately the time I spent on that was not sufficient to completely understand the PHPUnit model.

I'm happy for any pull requests regarding this topic. It's a valid issue, so I'll leave this here open.

malkusch avatar Apr 26 '16 17:04 malkusch

I'm glad I found this issue, because I could not for the life of me figure out what the message was trying to tell me.

cj-clx avatar Jul 29 '20 19:07 cj-clx

I have no idea why I immediately closed the issue, but I'm glad even 4 years later it helped someone :D

jmauerhan avatar Jul 29 '20 21:07 jmauerhan