use strict; use warnings; use Test::More tests => 6; use Test::NoWarnings; use Test::Exception; use MooseX::Declare; class UnderTest { method pass_through (:$param?) { $param; } method pass_through2 (:name($value)?) { $value; } method pass_through3 ($value?) { $value || 'default'; } } is(UnderTest->new->pass_through(param => "send reinforcements, we're going to advance") => "send reinforcements, we're going to advance", "send three and fourpence, we're going to a dance"); lives_ok { is(UnderTest->new->pass_through2(name => "foo") => "foo", "should be 'foo'"); } 'name => $value'; lives_ok { is(UnderTest->new->pass_through3() => "default", "should be 'default'"); } 'optional param';