2016-04-15 36 views
3

我正在編寫一些功能測試以測試我的應用程序的登錄系統。我嘗試了以下方法使用fillField(),但無法讓它適用於我。如何使fillField()爲功能測試工作Codeception + Laravel 5.2

$I->fillField(['id' => 'loginEmail'], '[email protected]'); 

$I->fillField("//input[@id='loginEmail']", '[email protected]'); 

之後,當我試圖運行seeInFormFields()方法,它給我下面的錯誤:

Step I see in form fields "form[name=loginForm]",{"email":"[email protected]","password":123456} 
Fail Failed asserting that `[email protected]` is in input's value: array (
    0 => '', 
) 
Failed asserting that an array contains '[email protected]'. 

點要注意的是,我上有註冊表格相同的頁面有相同的name,這就是爲什麼我不得不使用ID

任何幫助或建議將不勝感激。

使用HTML程式碼

更新下方是我的HTML表單代碼

<form name="loginForm" class="" method="POST" action="https://domain/en-us/checkout/login"> 
     <div class="col-sm-12 wrapper generic-form collapse-form" ng-controller="mobileController"> 
      <fieldset> 
       <legend 
        class="legend-login"> 
        I have an account 
       </legend> 
       <div class="collapse-panel"> 
        <div class="col-xs-12 control-group"> 
         <div class="row form-group" ng-class="{ 'has-error' : loginForm.email.$error.required && submitted }"> 
          <div class="col-sm-4 col-xs-12 text-right"> 
           <label for="email">E-Mail</label> 
          </div> 
          <div class="col-sm-8 col-xs-12"> 
           <input 
             name="email" 
             type="email" class="form-control" 
             id="loginEmail" 
             required> 
           <small class="ico-buttons ico-error red"> 
            Mandatory 
           </small> 
          </div> 
         </div> 
        </div> 
        <div class="col-xs-12"> 
         <div class="row form-group" ng-class="{ 'has-error' : loginForm.password.$error.required && submitted }"> 
          <div class="col-sm-4 col-xs-12 text-right"> 
           <label for="password">Password</label> 
          </div> 
          <div class="col-sm-8 col-xs-12"> 
           <input name="password" 
             type="password" 
             class="form-control" 
             id="password" 
             required> 
           <small class="ico-buttons ico-error red"> 
            Mandatory 
           </small> 
          </div> 
         </div> 
        </div> 
        <div class="col-xs-12"> 
         <div class="row form-group"> 
          <div class="col-xs-12 col-sm-8 col-sm-offset-4"> 
           <input type="button" value="Login" name="submitWelcomeLoginForm"> 
          </div> 
         </div> 
           <br> 
           <a href='https://domain.com/' class='pull-right'>Forgot Password?</a> 
        </div> 
       </div> 
      </fieldset> 
     </div> 
     <div class="clearfix"></div> 
    </form> 
+0

你可以添加你的表單的HTML問題? – Naktibalda

+0

@Naktibalda你看看我的html代碼嗎? –

回答

0

第一個參數是該領域

$I->fillField('email', '[email protected]'); 

你可以在這裏找到很多測試腳本的字符串名稱:https://github.com/satrun77/tinyissue/blob/master/tests/functional

測試腳本中使用fillField https://github.com/satrun77/tinyissue/blob/master/tests/functional/CrudIssueCest.php

+0

只需看看http://codeception.com/docs/modules/Laravel5#fillField。我也可以像使用數組一樣使用它,並使用其他參數嗎? –

0

你的問題不在於fillField不起作用,
它是seeInFormFields沒有看到填充的值,它只能看到出現在頁面的原始HTML值。

+0

你的意思是? –

+0

不使用seeInFormFields,你有提交表單的問題嗎? – Naktibalda

+0

是的,我已經嘗試過,並有錯誤。 –

相關問題