EC-CUBE3プラグインのテストメモです。
サービス、フォームのテストをメモしています。
cube3
|
|--app
|--Plugin
|--ExamplePlugin
|.....
|--Form
|-- ExampleType
|.....
|--Service
|--ExampleService.php
|.....
|.....
|--Tests
|.....
|-- Service
|-- ExampleServiceTest.php
|.....
|
|.....
|-- src
|.....
|-- tests
|--Eccube
|--Tests
|.....
|--Form
|.....
|--Service
アプリケーションルートでphpunitを実行します。
$ cd /path/to/cube3
$ phpunit app/Plugin/ExamplePlugin/Tests
EC-CUBE本体のTestsを参考に作成します。
基本はEccubeTestCaseクラスを継承します。
namespace Plugin\ExamplePlugin\Tests\Service;
use Eccube\Tests\EccubeTestCase;
use Plugin\ExamplePlugin\ServiceProvider\ServiceProvider;
class ExampleServiceTest extends EccubeTestCase
{
public function setUp()
{
parent::setUp();
$provider = new ServiceProvider();
$provider->register($this->app);
}
public testExampleMethod() {
....
this.assertEquals($expect, $actual);
}
}
EccubeTestCaseはSilex\WebTestCaseを継承しているので機能テストも行えます。
参考サイト
EC-CUBE3のメモ – ユニットテスト – – Qiita
namespace Plugin\ExamplePlugin\Tests\Form;
use Eccube\Tests\EccubeTestCase;
use Plugin\ExamplePlugin\ServiceProvider\ServiceProvider;
class ExampleTypeTest extends EccubeTestCase
{
/** @var array デフォルト値(正常系)を設定 */
private $formData = array(
'parameter1' => 'テスト入力1です。',
'parameter2' => 'テスト入力2です。',
);
public function setUp()
{
parent::setUp();
$provider = new ServiceProvider();
$provider->register($this->app);
// CSRF tokenを無効にしてFormを作成
$this->form = $this->app['form.factory']
->createBuilder(
'infotown_media_config',
null,
array(
'csrf_protection' => false,
)
)
->getForm();
}
public function testValidData()
{
$this->form->submit($this->formData);
$this->assertTrue($this->form->isValid());
}
.....
}
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。