Test::Deep just to verify that the list is, in fact, a list? I'll have to look into it.
You seem to want to do more than just that. You updated the OP to say that you wanted this:
But that IMO is only minimally testing your structure. With Test::Deep you could do this:ok( ref( $list ) eq 'ARRAY', 'returned a list' ); ok( scalar( @$list ), 'returned a populated list' ); ok( ref( $list->[0] ) eq 'HASH', 'first element is a hashref ...' );
This code would test that $list is an ARRAY reference, then that all the elements in it are HASH references, then it will check the structure of the hash (this part I made up as an example), to confirm that it has a key 'option' whose value matches a given reg-exp, and that it has a 'menu' key, but you can safely ignore the value in the test.cmp_deeply( $list, all( isa('ARRAY'), array_each( all( isa('HASH'), { option => re(...), menu => ignore() } ) ) ) );
With Test::Deep you can test the entire structure while only go as deeply as needed in the specifics of that structure. It's really powerful stuff IMO :)
In reply to Re^3: Test::More and is_array
by stvn
in thread Test::More and is_array
by geektron
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |