Hello, I have a controller that uses the '->ua' helper to fetch data on 
demand. During testing, I provide a mock service to avoid fetching the data 
from a real service on the internet. The mock service is mounted under the 
application to be tested using the 'Mount' plugin.

However, the 'embedded' user agent ('->ua') doesn't seem to 'see' the 
mocked service. I have tried and stripped down my problem to the following:

----------------------------------------
use Mojo::Base -strict;
use 
Test::Mojo;                                                                     
                             

use Test::More;
{
    package MyApp;
    use Mojo::Base 'Mojolicious';
    sub startup {
        my $self = shift;
        $self->routes->get('/welcome' => sub { shift->render(text => 
'welcome!') });             
        $self->routes->get('/indirect' => sub 
{                                                
                my $self = shift;
                my $got = $self->ua->get('/welcome')->result->text;
                $self->render(text => $got);
        });
    }
}
my $t = Test::Mojo->new('MyApp');
$t->get_ok('/welcome')->status_is(200)->content_is('welcome!'); # this test 
passes
$t->get_ok('/indirect')->status_is(200)->content_is('welcome!'); # **THIS 
TEST FAILS**
done_testing;
----------------------------------------

The second test fails. The embedded user agent ('->ua') doesn't seem to be 
connected to the application object inside the Test::Mojo object 
('$t->app') at all. (If I try printing available routes from within the 
controller with '$self->ua->server->app->routes', there seem to be none.) I 
tried various combinations of setting '$t->app', '$t->ua', 
'$t->ua->server->app', but couldn't find anything that worked.

What do I need to do to get this working?


Kind regards
Edward

-- 
You received this message because you are subscribed to the Google Groups 
"Mojolicious" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mojolicious+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mojolicious/e0be9784-4f89-4a6d-aa39-89f797b101c9n%40googlegroups.com.

Reply via email to