PHP in Action

Category: Testing

How to test everything

They say there's no free lunch, but at least there's free breakfast. Last week I attended a "breakfast seminar" with Robert C. Martin (Uncle Bob). There really was free food. Anyway, Uncle Bob held an extremely entertaining and useful introduction to the FitNesse testing tool. He...

Zend_Test

I admit I don't follow Zend Framework very closely, since I haven't been using it for any serious work. But I did write a piece about testing a Zend Framework action controller with View Helpers . This might need updating, since the testing capabilities of the Zend Framework have...

More beautiful code

I got some interesting comments to my previous post on "beautiful code" . Some were pretty strong disagreements. So am I wrong? Did I get carried away? Did my critical faculty go on vacation somewhere nice and sunny? I admit that sometimes I deliberately look at the positive and...

Beautiful code

Max Horwath has published his slides on Making Selenium Test Writing easier using a DSL online from IPC 2008 . Let me quote the whole short description: Implementing automated tests by using Seleniums API methods has several drawbacks. Selenium is great for what...

Many test methods versus custom assertions

This is something I posted to the Sitepoint PHP Application Design Forum with a little bit of added background. The background is the idea that unit test methods, for the sake of readability, should test only one single behavior. This may mean several tests for one method under test,...

Testing a Zend Framework action controller with View Helpers

I came across a Zend Framework (ZF) example I wanted to refactor. You really have to have unit test coverage to refactor effectively, and since there were no tests, I started trying to find out how to test it. There didn't seem to be a wealth of information available on the web, so I've ...

The psychology of test-driven development

Silvan Mühlemann has written an excellent piece titled Unit testing makes coding more fun . I keep saying that sort of thing, too. I also say it raises your IQ . But when I attended a presentation by Uncle Bob (Robert C. Martin) last summer, I was mildly shocked to see that he described...

Testing Smarty templates

I follow the principle that you should test everything that could possibly fail. And I would like to have unit tests for everything; tests that exercise each small behavior in isolation. The components that are easiest to unit test are typically class and methods in plain object-oriented code....

Paparrazzi testing

Uncle Bob (Robert C. Martin) has blogged about testing GUIs (web interfaces, that is; JSP and Rails) without having to run a web server. I don't think it answers all the challenges I'm up against currently, but it inspired me to some heavy thinking about the...

Anonymous functions for testing

I've been using mock objects when testing code that uses files and other stuff that's hard to test because there are too many effects on the code's surroundings and you have to test . I've been doing that on an ad hoc basis. Now Mike Naberezny has an interesting generalized...

Spaghetti? Ravioli? Farfalle?

In a blog post by Paul M. Jones , he quotes comments from slashdot claiming that TDD leads to "ravioli code": The problem is that it [Ravioli Code] tends to lead to functions (methods, etc.) without true coherence, and it often leaves the code to implement even something fairly...

Running PHP tests inside Vim

I created my own test runner to run tests inside Vim, I can't remember how long ago. Must be a year or two. I never shared it with the world. It was too primitive for anyone else to use. Then, recently, I decided to try re-implementing it in a more serious way. That meant using a more...

Tips for web testing

I just started listing the techniques I've learned when writing tests to exercise the web interface of a PHP application. This is from my experience and my personal preferences; it's not the final word or necessarily right for everyone. The idea of being able to record and play back...
 
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb