| Module Info
| Add a review of Test-Deep
Great module that allowed me to thoroughly test a bunch of very large structures.
My only disappointment is the documentation: it currently (v0.112) doesn't mention some of the available functions. One of such is hash_each() and I spent an hour or more searching for the solution without keys()... At the end, I've decided to try to implement it myself, when I spotted it already made in the source.
Other than that, this module is gold!
The module was just what I was looking for. Great descriptive name made finding it easy.
This module is delicious. We use it heavily in our test scripts, for comparing expected vs. actual output.
Awesome. This is the (no longer) missing module for testing sets, subsets and the likes.
Want to make sure your sub is returning 3 elements out of 10 allowed ones, but don't know in which order it'll return it?
cmp_deeply( [ @three_elements ], subsetof( @ten_elements ) );
This module does a great job. Usage is very straightforward and intuitive. Highly recommended to check if data structures look the way you expect them to.
If you need to test a big data structure's content, and you don't know or care about every last little bit of it, Test::Deep makes it easy to specify exactly what you need to. You can say, for example, that some very deep node has a few given properties and that you don't care about anything else -- or you can build a complex structure of comparisons to be applied to your tested struct. It's a big time-saver.
I needed to test that a large arrayref of hashrefs contained a couple elements somewhere in a couple different hashrefs in the structure.
By combining cmp_deeply(), supersetof() and superhashof() from this module, I was able to solve the problem elegantly.
Highly recommended for data structure testing. Don't wait for a complex data structure to try it.
Functions like superhashof() also make it even easier than is_deeply() to write tests for some simple cases.
I've found this module the best choice for testing complex data structures like ASTs. When a test fails, it provides much more detailed info on how two deep structures differ than Test::More's eq_array and eq_hash do. The brilliant idea of this module reminds me of a funny language named TXL.
Testing ASTs could hardly be interesting without Test::Deep! So I decide to rate it five stars.
Top notch module! It is exactly as advertised "Extremely flexible deep comparison". This module saved me many hours of tedious "manual" deep test writing. Its interface is very sofisticated, and can seem at times to be complex, but once you get your head around it, you will happy you did.
Handy for testing complex data structures.