diff --git a/composer.json b/composer.json
index 79afa9c48eba7ee11cc1ccbb97b237c913a60723..e3376b93852627f9d70ecb7f3731faaa79e5ffad 100644
--- a/composer.json
+++ b/composer.json
@@ -19,6 +19,9 @@
     "autoload": {
         "psr-4": {"WPDesk\\View\\": "src/"}
     },
+    "autoload-dev": {
+        "psr-4": {"WPDesk\\View\\Tests\\": "tests/"}
+    },
     "scripts": {
         "test": "phpunit",
         "phpcs": "phpcs"
diff --git a/tests/Fixtures/child-template.php b/tests/Fixtures/child-template.php
new file mode 100644
index 0000000000000000000000000000000000000000..980a0d5f19a64b4b30a87d4206aade58726b60e3
--- /dev/null
+++ b/tests/Fixtures/child-template.php
@@ -0,0 +1 @@
+Hello World!
diff --git a/tests/Fixtures/root-template.php b/tests/Fixtures/root-template.php
new file mode 100644
index 0000000000000000000000000000000000000000..b4e0f033659ce14df4603796efd5211e2f91d44c
--- /dev/null
+++ b/tests/Fixtures/root-template.php
@@ -0,0 +1 @@
+This is a content of nested template: <?php $this->output_render('child-template'); ?>
diff --git a/tests/stub/template/file.php b/tests/Fixtures/template/file.php
similarity index 100%
rename from tests/stub/template/file.php
rename to tests/Fixtures/template/file.php
diff --git a/tests/Renderer/TestSimplePhpRenderer.php b/tests/Renderer/TestSimplePhpRenderer.php
index bb3f175428d5550a79b013525d17c4c2d43f1ac2..b647beab8f4beebe5e2afdb856e5e9d794e2cdba 100644
--- a/tests/Renderer/TestSimplePhpRenderer.php
+++ b/tests/Renderer/TestSimplePhpRenderer.php
@@ -1,6 +1,9 @@
 <?php
 
+namespace WPDesk\View\Tests;
+
 use WPDesk\View\Resolver\ChainResolver;
+use WPDesk\View\Resolver\DirResolver;
 use WPDesk\View\Resolver\Exception\CanNotResolve;
 use WPDesk\View\Resolver\NullResolver;
 
@@ -12,9 +15,23 @@ class TestSimplePhpRenderer extends \PHPUnit\Framework\TestCase
 
     const TEMPLATE_DIR = '/templates';
 
+    public function testThrowsExceptionWhenCannotFindTemplate()
+    {
+      $this->expectException(CanNotResolve::class);
+
+      $renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new DirResolver(''));
+      $renderer->render('anything');
+    }
+
     public function testRenderWithDirResolver()
     {
-        $renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new \WPDesk\View\Resolver\DirResolver(__DIR__ . self::TEMPLATE_DIR));
+        $renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new DirResolver(__DIR__ . self::TEMPLATE_DIR));
         $this->assertEquals(self::TEXT_IN_TEMPLATE, $renderer->render(self::TEMPLATE_NAME));
     }
+
+    public function testCanRenderNestedTemplates(): void
+    {
+        $renderer = new \WPDesk\View\Renderer\SimplePhpRenderer(new DirResolver(__DIR__ . '/../Fixtures'));
+        $this->assertStringContainsString('This is a content of nested template: Hello World!', $renderer->render('root-template'));
+    }
 }
\ No newline at end of file
diff --git a/tests/Resolver/TestChainResolver.php b/tests/Resolver/TestChainResolver.php
index 0e32b1faeceb3e9a52a4a9a6fcba43684dc8dfe9..b68c1f954e2056ae42781d29b6f337a9986a8dd7 100644
--- a/tests/Resolver/TestChainResolver.php
+++ b/tests/Resolver/TestChainResolver.php
@@ -1,5 +1,7 @@
 <?php
 
+namespace WPDesk\View\Tests;
+
 use WPDesk\View\Resolver\ChainResolver;
 use WPDesk\View\Resolver\Exception\CanNotResolve;
 use WPDesk\View\Resolver\NullResolver;
@@ -22,7 +24,7 @@ class TestChainResolver extends \PHPUnit\Framework\TestCase
 
     public function testUseSecondResolverWhenFirstFailed()
     {
-        $validResolver = Mockery::mock(NullResolver::class);
+        $validResolver = \Mockery::mock(NullResolver::class);
         $validResolver
             ->shouldReceive(self::RESOLVE_METHOD_NAME)
             ->andReturn(self::RESPONSE_OF_RESOLVER);
@@ -33,7 +35,7 @@ class TestChainResolver extends \PHPUnit\Framework\TestCase
 
     public function testUseFirstResolverFirst()
     {
-        $validResolver = Mockery::mock(NullResolver::class);
+        $validResolver = \Mockery::mock(NullResolver::class);
         $validResolver
             ->shouldReceive(self::RESOLVE_METHOD_NAME)
             ->andReturn(self::RESPONSE_OF_RESOLVER);
diff --git a/tests/Resolver/TestDirResolver.php b/tests/Resolver/TestDirResolver.php
index 088bc09eea390c76d1569dec3cd4af8facbd96d8..42cfcfaa0047b10ea1a8de27d0ec2e328c8e2782 100644
--- a/tests/Resolver/TestDirResolver.php
+++ b/tests/Resolver/TestDirResolver.php
@@ -1,5 +1,6 @@
 <?php
 
+namespace WPDesk\View\Tests;
 
 use WPDesk\View\Resolver\Exception\CanNotResolve;
 
diff --git a/tests/Resolver/TestWpThemeResolver.php b/tests/Resolver/TestWpThemeResolver.php
index ab400a52f00b48ea304f734d94ba43050dca2ef4..c3fb0a2f06bb484b681616dc12ecf0e4e0e37d20 100644
--- a/tests/Resolver/TestWpThemeResolver.php
+++ b/tests/Resolver/TestWpThemeResolver.php
@@ -1,5 +1,6 @@
 <?php
 
+namespace WPDesk\View\Tests;
 
 use WPDesk\View\Resolver\Exception\CanNotResolve;
 
diff --git a/tests/TestPluginViewBuilder.php b/tests/TestPluginViewBuilder.php
index 6c25585225ca6b454398b689645b3768950c7f62..9b9ea8ccc6cad47cc9c152dab6a86d0a907896b8 100644
--- a/tests/TestPluginViewBuilder.php
+++ b/tests/TestPluginViewBuilder.php
@@ -1,5 +1,6 @@
 <?php
 
+namespace WPDesk\View\Tests;
 
 use WPDesk\View\PluginViewBuilder;
 
@@ -20,14 +21,14 @@ class TestPluginViewBuilder extends \PHPUnit\Framework\TestCase {
 	}
 
 	public function testCanRenderUsingDir() {
-		$builder  = new PluginViewBuilder( __DIR__ . '/stub', 'template' );
+		$builder  = new PluginViewBuilder( __DIR__ . '/Fixtures', 'template' );
 		$renderer = $builder->createSimpleRenderer();
 
 		$val     = 'val to render';
 		$args    = [ 'singleArg' => $val ];
 		$content = $renderer->render( 'file', $args );
-		$this->assertRegExp( '/template content/', $content, 'Content from stub/template/file.php should be renderer' );
-		$this->assertRegExp( "/{$val}/", $content, 'Content from stub/template/file.php should contain $val' );
+		$this->assertRegExp( '/template content/', $content, 'Content from Fixtures/template/file.php should be renderer' );
+		$this->assertRegExp( "/{$val}/", $content, 'Content from Fixtures/template/file.php should contain $val' );
 
 		$contentUsingOtherMethod = $builder->loadTemplate( 'file', '.', $args );
 		$this->assertEquals( $content, $contentUsingOtherMethod,