in reply to Re^2: Test::More and is_array
in thread Test::More and is_array
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 :)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Test::More and is_array
by geektron (Curate) on Jun 10, 2005 at 20:31 UTC | |
by adrianh (Chancellor) on Jun 11, 2005 at 22:23 UTC | |
by geektron (Curate) on Jun 12, 2005 at 17:03 UTC | |
by adrianh (Chancellor) on Jun 13, 2005 at 11:36 UTC | |
by geektron (Curate) on Jun 13, 2005 at 15:14 UTC | |
| |
by stvn (Monsignor) on Jun 11, 2005 at 01:44 UTC |