2016-04-15 1 views
3

J'écris des tests fonctionnels pour tester le système de connexion pour mon application. J'ai essayé ci-dessous façons d'utiliser fillField() mais ne pouvait pas le faire fonctionner pour moi.Comment faire pour remplir des tests fonctionnels fillField() Codeception + Laravel 5.2

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

et

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

Après cela, quand j'ai essayé d'exécuter la méthode seeInFormFields(), sa me donner ci-dessous erreur:

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]'. 

Point à noter que, j'ai formulaire d'inscription sur même page qui a même name, c'est pourquoi j'ai dû utiliser ID.

Toute aide ou suggestion sera grandement appréciée.

MISE À JOUR AVEC HTML CODE

Ci-dessous mon formulaire HTML Code

<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

Pourriez-vous ajouter du code HTML à votre formulaire? – Naktibalda

+0

@Naktibalda avez-vous regardé mon code html ?? –

Répondre

0

Le premier paramètre est le nom de chaîne du champ

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

Vous pouvez trouver de nombreux scripts de test ici : https://github.com/satrun77/tinyissue/blob/master/tests/functional

script de test utilisé fillField https://github.com/satrun77/tinyissue/blob/master/tests/functional/CrudIssueCest.php

+0

suffit de regarder http://codeception.com/docs/modules/Laravel5#fillField. Je peux aussi l'utiliser comme tableau et utiliser d'autres paramètres non? –

0

Votre question n'est pas que FillField ne fonctionne pas, il est
que seeInFormFields ne voit pas les valeurs remplies, il ne voit que les valeurs présentes dans le code HTML de la page originale.

+0

qu'est-ce que vous vouliez dire? –

+0

n'utilisez pas seeInFormFields, avez-vous un problème avec le formulaire de soumission? – Naktibalda

+0

oui j'ai déjà essayé et j'ai eu une erreur. –