diff --git a/t/request.t b/t/request.t
new file mode 100644
index 0000000..4457048
--- /dev/null
+++ b/t/request.t
@@ -0,0 +1,77 @@
+use Mojolicious::Lite;
+use Test::More tests => 17;
+use Mojolicious::Controller;
+
+use_ok('Kalamar::Request');
+
+my $req = Kalamar::Request->new(
+  url => 'http://www.example.com',
+  method => 'POST',
+  controller => Mojolicious::Controller->new
+)->param('x', 'y');
+
+is($req->method, 'POST');
+is($req->url, 'http://www.example.com');
+ok($req->controller);
+is_deeply($req->param, ['x','y'], 'Compare');
+
+my $err;
+$req->start->catch(
+  sub {
+    $err = shift
+  })->finally(
+    sub {
+      is($err,'No useragent defined','Error');
+    })->wait;
+
+my $c = $req->controller;
+$c->app(app);
+ok($req->controller(undef),'Set controller');
+
+$req->start->catch(
+  sub {
+    $err = shift
+  })->finally(
+    sub {
+      is($err,'No controller defined','Error');
+    })->wait;
+
+ok($req->url(undef),'Set URL');
+
+$req->start->catch(
+  sub {
+    $err = shift
+  })->finally(
+    sub {
+      is($err,'No URL defined','Error');
+    })->wait;
+
+put '/test' => sub {
+  shift->render(text => 'Hallo')
+};
+
+# Set UA
+ok($req->ua(Mojo::UserAgent->new));
+$req->ua->server->app->log->level('fatal');
+ok($req->controller($c));
+ok($req->method('put'));
+ok($req->url('/test'));
+ok($req->param(undef));
+
+$err = undef;
+$req->start->then(
+  sub {
+    my $tx = shift;
+    is($tx->res->body,'Hallo');
+  })->catch(
+    sub {
+      $err = shift;
+    })->finally(
+      sub {
+        ok(!$err);
+      })->wait;
+
+done_testing;
+__END__
+
+1;
