The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Test::RandomCheck - Yet another QuickCheck for Perl

SYNOPSIS

  use Test::RandomCheck;
  use Test::RandomCheck::Generator;
  use Test::More;

  sub my_length { ... }

  # Define types of values which is used while testing.
  my $type_of_arguments = concat(string, string);

  random_ok {
      my ($s1, $s2) = @_;
      # Write a property which the my_length has.
      my_length($s1) + my_length($s2) == my_length($s1 . $s2);
  } $type_of_arguments;

  done_testing;

DESCRIPTION

THIS IS EXPERIMENTAL!

Test::RandomCheck is an implementation of QuickCheck in Perl.

You may want to define any kind of test arguments by using conbinators prepared by Test::RandomCheck::Generator.

FUNCTIONS

<random_ok { ... } $generator;>

Run blocks with arguments generated by $generator. $generator must have arbitrary() method which returns the Test::RandomCheck::Generator instance.

It outputs "OK" if the block returns the true value for all random petterns.

SEE ALSO

http://hackage.haskell.org/package/QuickCheck is a test library for Haskell to define properties of functions and to run tests randomly.

Test::LectroTest is another implementation of QuickTest which uses the source code filter and has haskell like syntax (CamelCase class names).

AUTHOR

Masahiro Honma <hiratara@cpan.org>

COPYRIGHT

Copyright 2013- Masahiro Honma

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO