Any advice on test driven development in Moose? Any preferred testing idioms? Any affordances or most optimal leveraging of Moose and testing idioms?
I write my tests with Moose the same way I wrote them without Moose actually, using Test::More and friends. We do have a Test::Moose module included in the distro which provides a few helpers, it is a relatively new module too, so any ideas for additional testing functions are welcome.
The only real difference between my pre-Moose tests and the tests I write now is that I am no longer testing things like accessors or object creation or correct type usage, cause I know that Moose tests all that for me. The Moose test suite currently has 2926 test across 133 files, and the Class::MOP test suite has 1971 test across 56 files, in addition to this we regularly smoke test the MooseX:: modules in our svn repository which adds another thousand tests or so. Because of this, I feel pretty confident that I only need to test what it is my module does, and not that the OO is working correctly. This is not unlike writing tests in a compiled and statically typed language like Java, Haskell or OCaml, in those languages the compiler will do a kind of sanity check on the code, leaving you to just test what it is your code actually does.