# Test::Moose - Test functions for Moose specific features - perldoc - [phpMan]

## NAME
    [Test::Moose](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMoose/markdown) - Test functions for Moose specific features

## VERSION
    version 2.2207

## SYNOPSIS
      use [Test::More](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMore/markdown) plan => 1;
      use [Test::Moose](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMoose/markdown);

      meta_ok($class_or_obj, "... Foo has a ->meta");
      does_ok($class_or_obj, $role, "... Foo does the Baz role");
      has_attribute_ok($class_or_obj, $attr_name, "... Foo has the 'bar' attribute");

## DESCRIPTION
    This module provides some useful test functions for Moose based classes. It is an experimental
    first release, so comments and suggestions are very welcome.

## EXPORTED FUNCTIONS
  meta_ok ($class_or_object)
    Tests if a class or object has a metaclass.

  does_ok ($class_or_object, $role, ?$message)
    Tests if a class or object does a certain role, similar to what "isa_ok" does for the "isa"
    method.

  has_attribute_ok($class_or_object, $attr_name, ?$message)
    Tests if a class or object has a certain attribute, similar to what "can_ok" does for the
    methods.

  with_immutable { CODE } @class_names
    Runs CODE (which should contain normal tests) twice, and make each class in @class_names
    immutable in between the two runs.

    The CODE block is called with a single boolean argument indicating whether or not the classes
    have been made immutable yet.

## TODO
    Convert the Moose test suite to use this module.
    Here is a list of possible functions to write

        immutability predicates
        anon-class predicates
        discovering original method from modified method
        attribute metaclass predicates (attribute_isa?)

## SEE ALSO
    [Test::More](https://www.chedong.com/phpMan.php/perldoc/Test%3A%3AMore/markdown)

## BUGS
    See "BUGS" in Moose for details on reporting bugs.

## AUTHORS
    *   Stevan Little <<stevan@cpan.org>>

    *   Dave Rolsky <<autarch@urth.org>>

    *   Jesse Luehrs <<doy@cpan.org>>

    *   Shawn M Moore <<sartak@cpan.org>>

    *   יובל קוג'מן (Yuval Kogman) <<nothingmuch@woobling.org>>

    *   Karen Etheridge <<ether@cpan.org>>

    *   Florian Ragwitz <<rafl@debian.org>>

    *   Hans Dieter Pearcey <<hdp@cpan.org>>

    *   Chris Prather <<chris@prather.org>>

    *   Matt S Trout <<mstrout@cpan.org>>

## COPYRIGHT AND LICENSE
    This software is copyright (c) 2006 by Infinity Interactive, Inc.

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

