Anthony Johnson edited this page May 16, 2013 · 1 revision

Test::Builder 2: Electric Boogaloo

speaker: MichaelSchwern

Test::Builder underpins 80% of the tests on CPAN. Its limitations become everyone's limitations. It's done a very good job adapting the last seven years, and testing has become more sophisticated in that time, but age and backwards compatibility holds things back. There are a number of desired features which Test::Builder cannot support, such as end-of-test actions, without radically altering how tests are built.

thus: Test::Builder2.

We'll go over the basics of how Perl's testing system works. What things like Test::More and Test::Harness and Test::Builder and MakeMaker do and how they relate. TAP (Test Anything Protocol) will be briefly covered. Then we'll move on to how to use Test::Builder to write your own test module, and why you'd want to do that. Finally, we'll go into what's wrong with the design of Test::Builder and what Test::Builder2 is going to do about that.

Following the talk we're going to do some coding. People will split up into pairs (or triads, if you swing that way) and work on something to do with testing and Test::Builder or just watch. This includes...

  • Writing some tests for your own stuff.
  • Writing your own testing library
  • Fixing some Test::Builder bugs (RT tracker, Google code tracker)
  • Helping out with Test::Builder2

It's low pressure and you're encouraged to ask questions.

Hopefully we can get a good mix of experience and inexperienced people to pair together. Test::Builder2 is using Moose (well, Mouse) and git, so here's an opportunity to play with them.

I hope people will bring their laptops. If you plan on working on TB2 make sure you have git and Mouse installed. I also encourage people to bring an extra keyboard and mouse to make pairing easier. Finally, if there is a spare projector and it's not too much trouble please bring it.

Don't panic!

Slides and Podcast

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.