## exported functions
-sub meta_ok ($;$) {
+sub meta_ok ($;$) { ## no critic
my ($class_or_obj, $message) = @_;
$message ||= "The object has a meta";
}
}
-sub does_ok ($$;$) {
+sub does_ok ($$;$) { ## no critic
my ($class_or_obj, $does, $message) = @_;
$message ||= "The object does $does";
}
}
-sub has_attribute_ok ($$;$) {
+sub has_attribute_ok ($$;$) { ## no critic
my ($class_or_obj, $attr_name, $message) = @_;
$message ||= "The object does has an attribute named $attr_name";
}
}
-sub with_immutable (&@) {
+sub with_immutable (&@) { ## no critic
my $block = shift;
my $before = $Test->current_test;
$block->();
$_->meta->make_immutable for @_;
$block->();
+ return if not defined wantarray;
my $num_tests = $Test->current_test - $before;
-
return !grep{ !$_ } ($Test->summary)[-$num_tests .. -1];
}
Tests if a class or object has a certain attribute, similar to what C<can_ok>
does for the methods.
-=back
+=item B<with_immutable { CODE } @class_names>
-=head1 SEE ALSO
-
-=over 4
-
-=item L<Test::More>
+Runs I<CODE> *which should contain normal tests) twice, and make each
+class in I<@class_names> immutable between the two runs.
=back
L<Test::Moose>
+L<Test::More>
+
=cut