<div dir="ltr"><div dir="ltr">Ive been messing around with figuring out how to unit test plugins. I came up with something that works but that is very messy and hacky and so it feels like I'm way off the beaten path. Can someone set me straight on whether there is an easier way to peek into the inner data structures of a plugin?<div><br></div><div>Here's what I came up with to dump the contents of my plugin's "html_cache" attribute:</div><div><div><br></div><div><font face="monospace, monospace">my $app = Dancer2::Core::App->new();</font></div><div><font face="monospace, monospace">$app->with_plugins('Menu');</font></div><div><font face="monospace, monospace">$app->plugins->[0]->menu_item( { title => 'blah' }, $app->add_route(</font></div><div><font face="monospace, monospace">    method => 'get',</font></div><div><font face="monospace, monospace">    regexp => '/test',</font></div><div><font face="monospace, monospace">    code => sub { $app->template('<a href="http://index.tt">index.tt</a>', shift) } ));</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">my $req = Dancer2::Core::Request->new( env => {</font></div><div><font face="monospace, monospace">        SERVER_NAME       => 'localhost',</font></div><div><font face="monospace, monospace">        SERVER_PORT       => 8000,</font></div><div><font face="monospace, monospace">  }  );</font></div><div><font face="monospace, monospace">my $route = $app->routes->{get}->[0];</font></div><div><font face="monospace, monospace">$req->{route} = $route;</font></div><div><font face="monospace, monospace">$req->{cookies} = {  };</font></div><div><font face="monospace, monospace">$app->{request} = $req;</font></div><div><font face="monospace, monospace">$route->execute($app);</font></div><div><font face="monospace, monospace">print Dumper $app->plugins->[0]->html_cache;</font></div><div><br></div><div>Thanks!</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Prometheus Labor Communications, Inc.<br><a href="http://prometheuslabor.com" target="_blank">http://prometheuslabor.com</a><br>413-572-1300<br><br>UnionConnect Phone App for Labor Unions<br><a href="http://unionconnect.com" target="_blank">http://unionconnect.com</a></div></div></div></div></div></div>