News Feed
Jobs Feed
Sections




News Archive
Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

DZone.com:
Self-Initializing Fakes in PHP
December 05, 2011 @ 10:03:53

In a new post over on DZone.com Giorgio Sironi shows how to create a fake, an interface that mocks the interface to an external tool and provides cached results back to the calling script.

We can specialize our Fake in a Self-Initializing Fake, which will provide an alternative implementation with the aid of the real one. In our Google Maps case, the Fake will use the real web service for its first response, and maintain an internal cache. This mechanism provides insurance about out-of-sync responses, and lets you enjoy the speed of unit tests after the initial warmup: if you always use the same data, no duplicate requests will be made to the external resource.

He includes example code for creating a test (with PHPUnit) that loads in the information from the Google Maps web service and caches it into a private variable inside the Fake. His test fails the first time checking for a difference in the time between fetching the real version and the cached version (fails the first time, but passes after the cache is implemented).

0 comments voice your opinion now!
selfinitializing fake double test unittest phpunit


blog comments powered by Disqus

Similar Posts

Qafoo.com: Practical PHPUnit: Testing XML generation

PHPMaster.com: Taking Advantage of PHP's Built-in Server

Chris Hartjes' Blog: Snakes and Elephants Playing Nice Together: PHPUnit and py.test with Hudson

Dutch Web Alliance: The definitive remote debug and unittest with PHPStorm guide: part 7

Sebastian Bergmann's Blog: Article on PHPUnit at IBM DeveloperWorks


Community Events











Don't see your event here?
Let us know!


facebook security podcast hack composer install introduction language package release symfony2 framework hhvm component database performance application opinion unittest series

All content copyright, 2014 PHPDeveloper.org :: info@phpdeveloper.org - Powered by the Solar PHP Framework