I agree, and here's why I do.
CPAN provides lots of ways to Test, and CPAN harnesses testing as part of the build process. The effect is that you don't have to trust people to get it right every single time.
By testing for results you must have rather than having hoops programmers must jump through, Perl and CPAN let all sorts of odd ideas, grand schemes, quirks, mathematical verities, lunatic notions, sacred cows, juicy hamburgers, oracular goings-on, lies, damned lies, divine inspirations, hallucinations, high science, low comedy, and too many other squibs to list, coexist. The cream rises to the top.
Trust is fine, but test and experiment and imagination are finer.
| [reply] |
Yes, we have tests. Yes, you can choose not to use modules which have no tests. Unfortunately, there are modules (and I'm guilty of creating some) which have only a minimal "it compiles" test. There are others which are damnably hard, if not impossible, to write tests for, and so you can't really be sure that they have adequate tests even if they have lots of them. And then there are modules which have *thousands* of tests, and you know damned well that they aren't all needed and so get suspicious about the quality of the tests for yet another reason.
| [reply] |
I'm not sure if this is the same point that Zaxo was making, but the test suites of other modules are only part of the picture. The other part of the picture is your test suite. A module you're using may have a terrible, non-functional test suite with very low coverage. That doesn't matter as much, though, as long as your own tests cover the things that matter to your program.
Maybe this doesn't apply to quick scripts written directly against the CPAN modules in question. But any time I'm doing a project of any reasonable amount of complexity, I tend to write most of the code in application-specific modules. This is where I do my testing, and this is where I can ensure my application is returning sane results. If a CPAN module I'm using from within this code is doing something strange, I will tend to find out about it.
| [reply] |