BlackBoxTestとは?
関数が正しく実行されているか確認するテストの事
例:FormType 関数が正しく実行されているか確認する場合
① Form 関数のコード
=> phone_number は必須項目になっている。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('phone_number', PhoneNumberType::class, [
'required' => true,
])
}
場所:src/Eccube/Form/Type/Front/EntryType.php
② ①のテスト内容
=> phone_number = ” の場合、Form関数の実行結果が false になるか確認している。
public function testInvalidPhoneNumberBlank()
{
// formDateのphone_numberにNull値を設定。
$this->formData['phone_number'] = '';
// その情報をsubmitした際、返却された値がfolseか確認している。
$this->form->submit($this->formData);
$this->assertFalse($this->form->isValid());
}
場所:tests/Eccube/Tests/Form/Type/Front/EntryTypeTest.php
WhiteBoxTest (e2eテスト) とは?
ユーザー目線でテストを実行すること。
ec-cueでは、bcodeception (PHPテスト用のフレームワーク)を使ってテストしていく。
例:管理側 TOP画面 のテストをする場合
① テスト内容
=>ブラウザから実行する動作をコード化している。
public function top_001(AcceptanceTester $I)
{
$I->wantTo('EA0101-UC01-T01 TOPページ 初期表示');
// TOP画面に現在の受注状況、お知らせ、売り上げ状況、ショップ状況、おすすめのプラグインが表示されている
$I->see('新規受付', TopPage::$受付状況_新規受付);
$I->see('お知らせ', TopPage::$お知らせ);
$I->see('売上状況', TopPage::$売上状況);
$I->see('ショップ状況', TopPage::$ショップ状況);
$I->see('おすすめのプラグイン', TopPage::$おすすめのプラグイン);
// 新規受付をクリックすると受注管理画面に遷移することを確認
$I->click(TopPage::$受付状況_新規受付);
$I->see('受注一覧', self::ページタイトル);
$I->goToAdminPage();
.....
}
場所:codeception/acceptance/EA01TopCest.php
phpunit の実行方法
- コンテナの中に入る
(今回) VSCODE -> Docker 拡張機能押下 -> 右クリック -> Attach Shell 押下 - 下記コマンドを実行
vendor/bin/phpunit tests/Eccube/Tests/Form/Type
(tests/Eccube/Tests/Form/Type 内のテストファイルすべてが実行される)