diff --git a/t/fixture.t b/t/fixture.t
index 3fd0bd3..6fac855 100644
--- a/t/fixture.t
+++ b/t/fixture.t
@@ -32,6 +32,14 @@
   ->json_is('/errors/1/1','Could not parse query >>> [orth=das <<<.')
   ;
 
+$t->get_ok('/search?q=baum&ql=poliqarp')
+  ->status_is(200)
+  ->json_is('/meta/count', 25)
+  ->json_is('/meta/serialQuery', "tokens:s:Baum")
+  ->json_is('/matches/0/docSigle', "GOE/AGI")
+  ;
+
+
 done_testing;
 __END__
 
diff --git a/t/fixtures/fake_backend.pl b/t/fixtures/fake_backend.pl
index 73b4561..e7fc518 100644
--- a/t/fixtures/fake_backend.pl
+++ b/t/fixtures/fake_backend.pl
@@ -54,6 +54,7 @@
   shift->render(text => 'Fake server available');
 };
 
+
 # Search fixtures
 get '/search' => sub {
   my $c = shift;
@@ -64,6 +65,8 @@
   $v->optional('count');
   $v->optional('context');
 
+  $c->app->log->debug('Receive request');
+
   # Response q=x&ql=cosmas3
   if ($v->param('ql') && $v->param('ql') eq 'cosmas3') {
     return $c->render(
@@ -93,9 +96,12 @@
     $response->{json}->{meta}->{startIndex} = $v->param("startIndex");
   };
 
-
   # Simple search fixture
-  return $c->render(%$response);
+  $c->render(%$response);
+
+  $c->app->log->debug('Rendered result');
+
+  return 1;
 };
 
 
diff --git a/t/query.t b/t/query.t
index de05a78..75ed9b8 100644
--- a/t/query.t
+++ b/t/query.t
@@ -1,16 +1,37 @@
 use Mojo::Base -strict;
 use Test::Mojo;
 use Test::More;
+use Mojo::File qw/path/;
+
+
+#####################
+# Start Fake server #
+#####################
+my $mount_point = '/api/';
+$ENV{KALAMAR_API} = $mount_point;
 
 my $t = Test::Mojo->new('Kalamar');
 
+# Mount fake backend
+# Get the fixture path
+my $fixtures_path = path(Mojo::File->new(__FILE__)->dirname, 'fixtures');
+my $fake_backend = $t->app->plugin(
+  Mount => {
+    $mount_point =>
+      $fixtures_path->child('fake_backend.pl')
+  }
+);
+# Configure fake backend
+$fake_backend->pattern->defaults->{app}->log($t->app->log);
+
 # Query passed
-$t->get_ok('/q2?q=hui')
+$t->get_ok('/q2?q=baum')
   ->status_is(200)
   ->text_is('#error','')
-  ->text_is('title', 'KorAP: Find »hui« with Poliqarp')
-  ->element_exists('meta[name="DC.title"][content="KorAP: Find »hui« with Poliqarp"]')
+  ->text_is('title', 'KorAP: Find »baum« with Poliqarp')
+  ->element_exists('meta[name="DC.title"][content="KorAP: Find »baum« with Poliqarp"]')
   ->element_exists('body[itemscope][itemtype="http://schema.org/SearchResultsPage"]')
+  ->text_is('#total-results', 51)
   ;
 
 
diff --git a/t/remote_user.t b/t/remote_user.t
index 96897e5..ee0b872 100644
--- a/t/remote_user.t
+++ b/t/remote_user.t
@@ -4,6 +4,10 @@
 use Mojo::File qw/path/;
 use Data::Dumper;
 
+
+#####################
+# Start Fake server #
+#####################
 my $mount_point = '/api/';
 $ENV{KALAMAR_API} = $mount_point;
 
@@ -19,10 +23,10 @@
       $fixtures_path->child('fake_backend.pl')
   }
 );
-
 # Configure fake backend
 $fake_backend->pattern->defaults->{app}->log($t->app->log);
 
+
 $t->get_ok('/api')
   ->status_is(200)
   ->content_is('Fake server available');
@@ -58,6 +62,7 @@
   ->tx->res->dom->at('input[name=csrf_token]')->attr('value')
   ;
 
+
 $t->post_ok('/user/login' => form => { handle_or_email => 'test', pwd => 'pass', csrf_token => $csrf })
   ->status_is(302)
   ->header_is('Location' => '/');
