2016-11-24 6 views
0

私のコードにはこのようなメソッドがあります。CakePHP統合テスト - テストする他に何かありますか?

public function businessDepartments() 
{ 
    $this->paginate = [ 
     'conditions' => [ 
      'Tags.tag_type_id' => 'businessDepartment' 
     ] 
    ]; 
    parent::_index(); 

    $this->set('columns', [ 
     'tag_value' => ['title' => __d('cockpit', 'Business department')], 
     'sort' => ['title' => __d('cockpit', 'Sorting')] 
    ]); 
    $this->_setURLsWhenAdd(); 
} 

このメソッドは、クラス "タグ"とアクション "businessDepartment"で呼び出すことができます。 これは、_setURLWhenAdd()がどのように見えるかを示しています。

/** 
* this method is setting the URLs inside the add 
* @return setter 
*/ 
protected function _setURLsWhenAdd() 
{ 
    // Set a new Url for the Add-Button in the index-View 
    $this->set('dataAjaxUrl', "/tags/add/businessDepartment"); 

    // Sets the refreshable-Class on the element and the ajax-url where the element can get fresh data 
    $this->set('refreshable', '/tags/businessDepartments'); 
} 

私はこのようなテストをしています。

public function testBusinessDepartments() 
{ 
    $this->get('/tags/businessDepartments'); 
    $this->assertResponseOk(); 
} 

これはテストするものですか?もっと何かをテストしてもいいですか?この方法からの入り口と応答を除きますか?

答えて

1

これは私がテストしたいものですか?もっと何かをテストしてもいいですか?この方法からの入り口と応答を除きますか?

ビューの変数が存在するかどうかテストしますか?

私はそれらが試験で$this->_controller->viewVarsによってアクセス可能であるべきだと思います。コントローラーインスタンスに到達する方法を把握していない場合

ページが見えるかどうかをテストするもう1つの方法は、あなたがそれ以外のものを実行することです(JSと同様)。また、受け入れテストも実装できます。 http://codeception.com/docs/03-AcceptanceTestsを参照してください。Cake3のコード生成プラグインもあります。

また、Router :: url()ではなく文字列urlを使用して配列の構文を使用しないでください。

+0

こんにちはBurzum、素晴らしいアイデアをありがとう。私はviewVarsにアクセスすることはできません。アクセス方法の例を教えてください。前もって感謝します。 –

+0

「アクセスできません」は適切な問題の説明ではありません。統合テストのAPIをチェックしてください。実際には私のために利用可能な$ this-> _コントローラ(Cake3)があります。 CakePHPのバージョン(指定していない)に応じて、ビューへのアクセスは異なります。 APIのドキュメントまたはマニュアルを確認してください。 :) – burzum

関連する問題