unit testing - How do I access overloaded properties on a PHPUnit mock object? -
when mocking object phpunit, how access properties of object accessed via overloading, i.e. via __get()?
for example, in code below testing post object. each post has author, of type role. each role has signature property.
$author = $this->getmockbuilder('app_model_domain_role') ->disableoriginalconstructor() ->getmock(); $author->expects($this->any()) ->method('__get') ->will($this->returnvalue('authorname')); as can see mock role object, configure homecoming string ('authorname') when __get() called. post object testing refers $this->author->signature. expecting homecoming 'authorname', instead test errors out saying $signature undefined property.
i tried configuring mock above without method() phone call (thinking expects() , will() calls apply mock's methods) still no success.
any ideas?
also, if know of tutorial on phpunit mocks i'd keen see - manual seems assume prior testing knowledge in particular area.
i tried same code , working me. phpunit version 3.7.12. version using? if running older version seek upgrading.
public function testmockingmagicgetter() { $mymock = $this->getmockbuilder('myclass') ->disableoriginalconstructor() ->getmock(); $mymock ->expects($this->any()) ->method('__get') ->will($this->returnvalue('authorname')); var_dump($mymock->signature); var_dump($mymock->dummy); var_dump($mymock->someprop); } results in:
string(10) "authorname" string(10) "authorname" string(10) "authorname" unit-testing mocking phpunit
No comments:
Post a Comment