Test::Moose(3) User Contributed Perl Documentation Test::Moose(3)

# [SYNOPSIS](#SYNOPSIS)

```
  use Test::More plan => 1;
  use Test::Moose;
  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](#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](#EXPORTED_FUNCTIONS)

## [meta\_ok ($class\_or\_object)](#meta_ok_%28$class_or_object%29)

Tests if a class or object has a metaclass.

## [does\_ok ($class\_or\_object, $role, ?$message)](#does_ok_%28$class_or_object,_$role,_?$message%29)

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)](#has_attribute_ok%28$class_or_object,_$attr_name,_?$message%29)

Tests if a class or object has a certain attribute, similar to what "can\_ok" does for the methods.

## [with\_immutable { CODE } @class\_names](#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](#TODO)

[Convert the Moose test suite to use this module.](#Convert)

[Here is a list of possible functions to write](#Here)

[immutability predicates](#immutability)

[anon-class predicates](#anon)

[discovering original method from modified method](#discovering)

[attribute metaclass predicates (attribute\_isa?)](#attribute)

# [SEE ALSO](#SEE_ALSO)

[Test::More](#Test::More)

# [BUGS](#BUGS)

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

2026-08-29 perl v5.44.0

---

Document: Test::Moose(3pm) from perl-moose 2.4000-r4 (Chainguard OS)
Source: https://github.com/moose/Moose
