You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A very common use case for me, and others I imagine, is to verify that a method was called with some value or array. The naive way of doing this:
Phake::verify($this->mock)->methodFoo(["bar" => "baz"]);
Leads to error messages like:
Failed asserting that Expected Mock->methodFoo(equal to ) to be called exactly <1> times, actually called <0> times.
Other Invocations:
Mock->methodFoo()
For complex objects or arrays it can be very hard to tell what exactly failed. I've been resorting to:
Phake::verify($this->mock)->methodFoo(Phake::catpure($actual));
$this->assertEquals(["bar" => "baz"], $actual);
Which gives me a nice diff around where things didn't match. I don't need the diff, but at least fully printing the actual array in both places would improve things greatly. Any way to improve these error messages? I know Mockito gives a much more descriptive list of things that didn't match.
The text was updated successfully, but these errors were encountered:
…ll you why each recorded call was marked as a failure.
No more will the fine users of Phake have to resort to argument captures for debugging their verification.
#144
The commit above implements much improved verification messages in the case of failures.
You will now see why each call to the method failed to match your verification including diffs in most cases. For PHPUnit I am just leveraging the built in constraint errors, same for hamcrest. For our built in equality matcher I completely revamped that to use sebastian/comparator instead of my own code.
I would love to get some early feedback before I roll a release with this. You can get it with "phake/phake": "2.1.*@dev"
A very common use case for me, and others I imagine, is to verify that a method was called with some value or array. The naive way of doing this:
Phake::verify($this->mock)->methodFoo(["bar" => "baz"]);
Leads to error messages like:
Failed asserting that Expected Mock->methodFoo(equal to ) to be called exactly <1> times, actually called <0> times.
Other Invocations:
Mock->methodFoo()
For complex objects or arrays it can be very hard to tell what exactly failed. I've been resorting to:
Phake::verify($this->mock)->methodFoo(Phake::catpure($actual));
$this->assertEquals(["bar" => "baz"], $actual);
Which gives me a nice diff around where things didn't match. I don't need the diff, but at least fully printing the actual array in both places would improve things greatly. Any way to improve these error messages? I know Mockito gives a much more descriptive list of things that didn't match.
The text was updated successfully, but these errors were encountered: