【EC-CUBE】単体テスト実行とコードの理解

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 の実行方法

  1. コンテナの中に入る
    (今回) VSCODE -> Docker 拡張機能押下 -> 右クリック -> Attach Shell 押下
  2. 下記コマンドを実行
    vendor/bin/phpunit tests/Eccube/Tests/Form/Type
    (tests/Eccube/Tests/Form/Type 内のテストファイルすべてが実行される)

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール