PHPUnit: expects method meaning PHPUnit: expects method meaning php php

PHPUnit: expects method meaning


expects() - Sets how many times you expect a method to be called:

$mock = $this->getMock('nameOfTheClass', array('firstMethod','secondMethod','thirdMethod'));$mock->expects($this->once())     ->method('firstMethod')     ->will($this->returnValue('value'));$mock->expects($this->once())     ->method('secondMethod')     ->will($this->returnValue('value'));$mock->expects($this->once())     ->method('thirdMethod')     ->will($this->returnValue('value'));

If you know, that method is called once use $this->once() in expects(), otherwise use $this->any()

see:
PHPUnit mock with multiple expects() calls

https://phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubs

http://www.slideshare.net/mjlivelyjr/advanced-phpunit-testing


A look into the source code will tell you:

/** * Registers a new expectation in the mock object and returns the match * object which can be infused with further details. * * @param  PHPUnit_Framework_MockObject_Matcher_Invocation $matcher * @return PHPUnit_Framework_MockObject_Builder_InvocationMocker */public function expects(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher);

And the PHPUnit Manual lists the available Matchers at

  • any() returns a matcher that matches when the method it is evaluated for is executed zero or more times.
  • never() returns a matcher that matches when the method it is evaluated for is never executed.
  • atLeastOnce() returns a matcher that matches when the method it is evaluated for is executed at least once.
  • once() returns a matcher that matches when the method it is evaluated for is executed exactly once.
  • exactly(int $count) returns a matcher that matches when the method it is evaluated for is executed exactly $count times.
  • at(int $index) returns a matcher that matches when the method it is evaluated for is invoked at the given $index.