Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
| 1 | <?php |
||
| 6 | class ShippingManagePage extends AbstractAdminPageStyleGuide |
||
|
|
|||
| 7 | { |
||
| 8 | public static $検索結果_メッセージ = '#search_form > div.c-outsideBlock__contents.mb-3 > span'; |
||
| 9 | public static $検索結果_エラーメッセージ = '//*[@id="page_admin_shipping"]/div[1]/div[3]/div[3]/div/div[1]/div/div/div[1]'; |
||
| 10 | public static $詳細検索ボタン = '//*[@id="search_form"]/div[1]/div/div/div[2]/a/span'; |
||
| 11 | |||
| 12 | /** |
||
| 13 | * ShippingListPage constructor. |
||
| 14 | */ |
||
| 15 | public function __construct(\AcceptanceTester $I) |
||
| 19 | |||
| 20 | public static function go(\AcceptanceTester $I) |
||
| 25 | |||
| 26 | public static function at(\AcceptanceTester $I) |
||
| 31 | |||
| 32 | public function 検索($value = '') |
||
| 38 | |||
| 39 | View Code Duplication | public function 詳細検索設定() |
|
| 40 | { |
||
| 41 | $this->tester->click(self::$詳細検索ボタン); |
||
| 42 | $this->tester->waitForElementVisible(['id' => 'searchDetail']); |
||
| 43 | $this->tester->wait(0.5); |
||
| 44 | return $this; |
||
| 45 | } |
||
| 46 | |||
| 47 | public function 入力_ご注文者お名前($value) |
||
| 52 | |||
| 53 | public function 入力_ご注文者お名前フリガナ($value) |
||
| 58 | |||
| 59 | View Code Duplication | public function 詳細検索_電話番号($value = '') |
|
| 67 | |||
| 68 | public function 出荷CSVダウンロード実行() |
||
| 73 | |||
| 74 | public function 出荷CSV出力項目設定() |
||
| 79 | |||
| 80 | public function 一覧_編集($rowNum) |
||
| 84 | |||
| 85 | View Code Duplication | public function 一覧_削除() |
|
| 93 | |||
| 94 | public function 一覧_削除キャンセル() |
||
| 100 | |||
| 101 | View Code Duplication | public function 一括発送済み更新() |
|
| 110 | |||
| 111 | View Code Duplication | public function 一括発送済みメール送信() |
|
| 119 | |||
| 120 | public function 一覧_全選択() |
||
| 125 | |||
| 126 | /** |
||
| 127 | * TODO: Should remove this function due to new design does not have other dropdown menu |
||
| 128 | */ |
||
| 129 | private function その他メニュー() |
||
| 133 | |||
| 134 | public function メール一括通知() |
||
| 138 | |||
| 139 | public function 一覧_チェックボックス($rowNum) |
||
| 143 | } |
||
| 144 |