Concatenate restrictions in phpunit

My question is, how do I associate clause constraints with phpunit? In the example with the mannequin:

$test->expects ($this->once()) ->method ('increaseValue') ->with ($this->greaterThan (0) ->will ($this->returnValue (null)); 

The parameter of the IncreValue method must be greater than 0, but if I need to evaluate that this parameter must be less than 10.

How do I concatenate $this->lessThan(10) ?

+7
source share
1 answer

You can use the logicalAnd expression:

 $test->expects ($this->once()) ->method ('increaseValue') ->with ($this->logicalAnd($this->greaterThan(0), $this->lessThan(10))) ->will ($this->returnValue (null)); 

A list of possible functions checks functions in: PHPUnit/Framework/Assert.php that do not start with "assert"

Full example

 <?php class mockMe { public function increaseValue($x) { } } class fooTest extends PHPUnit_Framework_TestCase { public function testMock() { $test = $this->getMock('mockMe'); $test->expects($this->once()) ->method('increaseValue') ->with($this->logicalAnd($this->greaterThan(0), $this->lessThan(10))) ->will($this->returnValue(null)); $test->increaseValue(6); } public function testMockFails() { $test = $this->getMock('mockMe'); $test->expects($this->once()) ->method('increaseValue') ->with($this->logicalAnd($this->greaterThan(0), $this->lessThan(10))) ->will($this->returnValue(null)); $test->increaseValue(12); } } 

Result

  phpunit blub.php PHPUnit 3.5.13 by Sebastian Bergmann. .F Time: 0 seconds, Memory: 4.25Mb There was 1 failure: 1) fooTest::testMockFails Expectation failed for method name is equal to <string:increaseValue> when invoked 1 time(s) Parameter 0 for invocation mockMe::increaseValue(<integer:12>) does not match expected value. Failed asserting that <integer:12> is less than <integer:10>. /home/.../blub.php:26 
+9
source

All Articles