Skip to content

Commit 3792a78

Browse files
committed
Update README.md
1 parent e341daf commit 3792a78

1 file changed

Lines changed: 84 additions & 0 deletions

File tree

README.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,85 @@
11
# plugin-test-support
2+
3+
## このプラグインについて
4+
- このプラグインは、CakePHP3のプラグインのテスト支援用のプラグインです~~(ややこしい)~~
5+
- プラグインのテストを記述するにあたって、通常のテストであれば、データベース接続にapp.phpにDatasourcesのtest内に記載をする必要がありますが、plugin単体でテストをしようとすると記載場所がない(はず)です。
6+
- bakeのテストなどを拝見すると、mockを使ってテストしているようですが、実際のデータベースを使ってテストをしたいということでこんなプラグインを作成してみました。
7+
- ~~正直こんなのなくても、同じことができそうな気もするんですが、どうなんですかね・・・~~
8+
9+
## 使い方
10+
① テストしたいプラグインのcomposer.jsonに以下を記載し、update
11+
```
12+
{
13+
"require-dev": {
14+
"satthi/plugin-test-support": "dev-master"
15+
},
16+
}
17+
18+
```
19+
② 使用したいテストに以下を記載
20+
```
21+
<?php
22+
namespace EncryptionSupport\Test\TestCase\Model\Table;
23+
24+
use App\Model\Table\AccountsTable;
25+
use Cake\ORM\TableRegistry;
26+
use Cake\TestSuite\TestCase;
27+
//以下をuse
28+
use PluginTestSupport\Test\TestCase\AppTestCase;
29+
30+
/**
31+
* App\Model\Table\AccountsTable Test Case
32+
*/
33+
//AppTestCaseをextendsする
34+
class AccountsTableTest extends AppTestCase
35+
{
36+
37+
/**
38+
* Fixtures
39+
*
40+
* @var array
41+
*/
42+
public $fixtures = [
43+
'plugin.encryption_support.accounts',
44+
];
45+
46+
/**
47+
* setUpBeforeClass method
48+
* setUpBeforeClassをオーバーライドする
49+
* @return void
50+
*/
51+
public static function setUpBeforeClass(){
52+
//データベースの接続情報
53+
$info = [
54+
'className' => 'Cake\Database\Connection',
55+
'driver' => 'Cake\Database\Driver\Postgres',
56+
'persistent' => false,
57+
'host' => 'localhost',
58+
//'port' => 'nonstandard_port_number',
59+
'username' => 'postgres',
60+
'password' => '',
61+
'database' => 'cakephp_test',
62+
'encoding' => 'utf8',
63+
'timezone' => 'Asia/Tokyo',
64+
'cacheMetadata' => false,
65+
'quoteIdentifiers' => false,
66+
];
67+
parent::setConnectionInfo($info);
68+
69+
parent::setUpBeforeClass();
70+
}
71+
72+
/**
73+
* setUp method
74+
*
75+
* @return void
76+
*/
77+
public function setUp()
78+
{
79+
parent::setUp();
80+
//fixtureManagerを呼び出し、fixtureを実行する
81+
$this->fixtureManager->fixturize($this);
82+
$this->fixtureManager->loadSingle('Accounts');
83+
}
84+
}
85+
```

0 commit comments

Comments
 (0)