News Feed
Sections




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

Padraic Brady's Blog:
Unit Testing One Test, One Assertion - Why It Works
February 17, 2009 @ 07:56:09

Padraic Brady has pormoted simplicity for unit testing in his latest blog post. He suggests that, for each test in your suite, you have only one assertion inside.

Obviously, a ratio of 1:1 would be perfect - but I'm sure we can accept some multiple assertions within a tolerance level. A ratio of more than 1.1:1 would indicate creeping obscurity (a signal it's time for me to intervene, refactor, and do some mutation testing for extra assurance). A ratio of 2:1 indicates a lost cause.

He notes that it probably sounds like a bad idea from the start, but he reinforces the suggestion with a bit of reasoning:

It's this notion of complexity that is often used to justify multiple assertions - if you break it down into the simple components that that complexity was built out of, multiple assertions don't have a leg to stand on (just the rare instances out of your control because they absolutely must be done).

You can see response that's been posted over on the PHP in Action blog in response to Padraic's thoughts.

1 comment voice your opinion now!
unittest assertion test reason opinion multiple phpunit tdd testdrivendesign


blog comments powered by Disqus

Similar Posts

Bill Staples' Blog: IIS7 Patch for Windows Vista fixes CGI/PHP apps - multiple response headers

Sebastian Bergmann's Blog: TestNG-style Grouping of Tests

NetTuts.com: Unit Testing Succinctly: Why Unit Test?

Vance Lucas' Blog: Protected vs Private Scope: Arrogance, Fear and Handcuffs

Chris Hartjes' Blog: How the Testing Sausage Gets Made


Community Events





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


introduction release bugfix laravel unittest voicesoftheelephpant language package install zendserver interview api podcast framework symfony series community deployment library opinion

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