Changes to Test::Builder/More/Simple incoming

A couple months back Schwern handed me the keys to Test::Builder and friends. Initially I planned to try and knock out little bugs and simply maintain stability... That plan failed and I ended up spending a lot of time giving it a major overhaul for a feature Schwern and I agreed would be very nice. Result Streaming. This was further prompted by a minor change to a specific diagnostic message that resulted in breaking fragile tests written with Test::Builder ::Tester, which frankly, has seen better days. THERE IS A BETTER WAY!

I have just released an ="…

Test::More - New Maintainer, Also stop version checking!

This post is to announce two things:

1) I am the new maintainer for Test::More. Schwern and I got together this morning to move it to a github organization, Test-More, at We are working on getting the repository into a decent state. You will need to update your links, repo remotes, etc.

2) Test::More 1.5 is suspended indefinitely. Regular Test::More will eventually reach the point where it will hit version 1.5.0, at this point the version will collide with the 1.5 experiment. There is probably *A LOT*…

Fennec V2.x - Testing made better

Fennec is a testing framework on top of Test::Builder, one that reduces boilerplate, and solves many of the limitations of vanilla Test::More. It addresses issues such as forking during tests, breaking tests into smaller parts, test-group isolation (state leaks), and mocking. With Fennec in your unit tests, testing becomes a much more enjoyable experience.

A while back I needed to create a presentation for promoting Fennec. That presentation can be found here and covers most of what makes Fennec so great. It even includes a javascript /var/www/users/chad_exodist_granum/index.html

DCI Revisited

A couple weeks ago I posted this introduction to DCI. I received a lot of feedback. Primarily I was told that I did not explain DCI concisely enough. In addition I received feedback that showed me I completely failed to convey the point of DCI. DCI does not replace OOP, it augments it and makes it easier to maintain.

After reviewing all feedback, and corresponding with many of those who provided it, I have written a new document. This document attempt to use simple language, to…

Introducing DCI to the Perl world.

For those who are not aware, there is a newish methodology called DCI (Data, Context, Interactions) which attempts to solve the problems of OOP. DCI was designed and proposed by the same guy that created the MVC concept that has become hugely successful. DCI is an attempt to group methods with their use cases so that interactions used by business logic and algorithms are more predictable.

The key to DCI is a separation of concepts:

  • Data: what the system is
  • Context: A use case
  • Interactions How objects interact within a co…