Skip to content

Commit d67308f

Browse files
committed
Add a trait alternative
1 parent e1369ce commit d67308f

4 files changed

Lines changed: 89 additions & 69 deletions

File tree

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,18 @@ The `Phug\Tester\TestCase` is needed to use Pug utils such as
5454
`renderFile` or if you need to get both PHP and Pug coverage in
5555
a single command.
5656

57+
As an alternative if you extend an other class, you can use
58+
the trait:
59+
60+
```php
61+
<?php
62+
63+
class MyTemplatesTest extends MyFramerowk\TestCase
64+
{
65+
use Phug\Tester\TestCaseTrait;
66+
}
67+
```
68+
5769
Options
5870
-------
5971

src/Phug/Tester/TestCase.php

Lines changed: 1 addition & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,74 +2,7 @@
22

33
namespace Phug\Tester;
44

5-
use Phug\Renderer;
6-
75
abstract class TestCase extends \PHPUnit\Framework\TestCase
86
{
9-
/**
10-
* @var Renderer
11-
*/
12-
protected $renderer;
13-
14-
/**
15-
* @param string $file
16-
* @param array $locals
17-
* @param array|null $options
18-
*
19-
* @throws \Phug\RendererException
20-
*
21-
* @return string
22-
*/
23-
protected function renderFile($file, $locals = [], $options = null)
24-
{
25-
if ($options) {
26-
$this->renderer->setOptions($options);
27-
$this->renderer->initCompiler();
28-
$this->renderer->initAdapter();
29-
}
30-
31-
return $this->renderer->renderFile($file, $locals);
32-
}
33-
34-
/**
35-
* @return array
36-
*/
37-
protected function getPaths()
38-
{
39-
return ['views'];
40-
}
41-
42-
/**
43-
* @return array
44-
*/
45-
protected function getExtensions()
46-
{
47-
return ['', '.pug', '.jade'];
48-
}
49-
50-
/**
51-
* @return Renderer|string
52-
*/
53-
protected function getRenderer()
54-
{
55-
return Renderer::class;
56-
}
57-
58-
/**
59-
* @throws \Phug\RendererException
60-
*/
61-
protected function setUp()
62-
{
63-
$this->renderer = Coverage::get()->createRenderer(
64-
$this->getRenderer(),
65-
$this->getExtensions(),
66-
$this->getPaths()
67-
);
68-
}
69-
70-
protected function tearDown()
71-
{
72-
parent::tearDown();
73-
Coverage::get()->storeCoverage(xdebug_get_code_coverage());
74-
}
7+
use TestCaseTrait;
758
}

src/Phug/Tester/TestCaseTrait.php

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
3+
namespace Phug\Tester;
4+
5+
use Phug\Renderer;
6+
7+
trait TestCaseTrait
8+
{
9+
/**
10+
* @var Renderer
11+
*/
12+
protected $renderer;
13+
14+
/**
15+
* @param string $file
16+
* @param array $locals
17+
* @param array|null $options
18+
*
19+
* @throws \Phug\RendererException
20+
*
21+
* @return string
22+
*/
23+
protected function renderFile($file, $locals = [], $options = null)
24+
{
25+
if ($options) {
26+
$this->renderer->setOptions($options);
27+
$this->renderer->initCompiler();
28+
$this->renderer->initAdapter();
29+
}
30+
31+
return $this->renderer->renderFile($file, $locals);
32+
}
33+
34+
/**
35+
* @return array
36+
*/
37+
protected function getPaths()
38+
{
39+
return ['views'];
40+
}
41+
42+
/**
43+
* @return array
44+
*/
45+
protected function getExtensions()
46+
{
47+
return ['', '.pug', '.jade'];
48+
}
49+
50+
/**
51+
* @return Renderer|string
52+
*/
53+
protected function getRenderer()
54+
{
55+
return Renderer::class;
56+
}
57+
58+
/**
59+
* @throws \Phug\RendererException
60+
*/
61+
protected function setUp()
62+
{
63+
$this->renderer = Coverage::get()->createRenderer(
64+
$this->getRenderer(),
65+
$this->getExtensions(),
66+
$this->getPaths()
67+
);
68+
}
69+
70+
protected function tearDown()
71+
{
72+
parent::tearDown();
73+
Coverage::get()->storeCoverage(xdebug_get_code_coverage());
74+
}
75+
}

tests/Phug/Tester/TestCaseTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Phug\Tester\Coverage;
66

77
/**
8-
* @coversDefaultClass \Phug\Tester\TestCase
8+
* @coversDefaultClass \Phug\Tester\TestCaseTrait
99
*/
1010
class TestCaseTest extends AbstractTesterCaseTest
1111
{

0 commit comments

Comments
 (0)