2016-05-29 11 views
1

こんにちは私はコード化を新しくしました AcceptestTester.phpで定義された関数をCestから呼び出そうとしていました。 エラーを返す未定義の関数を呼び出すdemoInjection()codeception受託ファイルからacceptancetester.phpで定義された関数を呼び出すことができません

以下

私の関数definationで、ヘルパーメソッドはに属しているため、ヘルパーメソッドを呼び出すための正しい方法は

$I->demoInjection($aLinkText,$sLinkName); 

ある

public function checkGrabmultiple(AcceptanceTester $I) 
{ 
    $I->click('Online Games'); 
    $aLinkText = $I->grabMultiple("//div[@class='col']",'class'); 
    $LinkName = 'Gold Spinner'; 
    $I->debug(demoInjection($aLinkText,$sLinkName)); 
} 
+3

それは '$ this-> demoInjection'であるべきです。 – keziah

答えて

0

関数を呼び出す機能

public function demoInjection($aLinkText,$sLinkName) 
{ 
    $I= $this; 

    for($z=0;$z<=Count($aLinkText);$z++) 
    { 
     if ($aLinkText[$z] = $sLinkName){ 
       $I->Click($aLinkText[$z]); 
     } 
    } 

    return $this; 
} 

を呼び出しますテスターではなく、Cestクラスにはありません。

+0

この場合、エラーは異なっていなければなりません。メソッドが定義されていないと言うべきです。 – Naktibalda

+0

私は上記の "定義されていない関数demoInjection()"を呼び出すのと同じエラーを与えています – Rahul

+0

バージョン2.1で問題になっていました。 – Rahul

0

codeceptionのバージョンに依存し、あなたはAcceptanceTester.phpに変更を加えた後

php codecept.phar build 

を実行する必要があります。

これ以降のバージョンでは、これはtestesを実行する前に実行されますが、無効にすることができます。

このコマンドは、AcceptanceTesterActions.phpに新しい関数/ステップの名前で関数を指定します。 これはcodecetionは

$ I-> demoInjection($ aLinkText、$ sLinkName)の形であなたの新しい機能を使用できるようになります。

幸運と幸せなテスト!

+0

私は同じことを試み、AcceptanceTesterAction.phpも生成されますが、AceptanceTester.phpで作成した関数のステップ名はありません。 – Rahul

+0

1.どのバージョンのコード作成を使用していますか? (php codecept.phar -V) 2. "php codecept.phar build"の出力を教えてください。 –

+0

私はcodeception 2.1を使用しています。 – Rahul

関連する問題