2017-10-20 14 views
0

J'ai écrit Fixture et FitnessTest suivants pour ce luminaire, mais d'une manière ou d'une autre, FitNesse n'est pas en mesure de trouver le luminaire. Je fournis simplement le nom d'utilisateur et mot de passe (en blanc intentionnellement), puis vérifier pour languagecode, countrycode et variantcode pour cet utilisateur:Test FitNessse ne peut pas trouver Fixture

public class UserLanguageFixture extends TestSetup { 
    private String userId; 
    private String password; 
    private String languageCode, countryCode, 
      variantCode; 

    UserLanguageFixture(String userId, String password) { 
     this.userId = userId; 
     this.password = password; 
    } 

    UserLanguageFixture() { 
    } 

    public void setUserId(String userId) { 
     this.userId = userId; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public void processUserIdAndPassword(String userId, String password) throws 
      JsonProcessingException { 
     Client client = ClientBuilder.newClient(); 
     WebTarget webTarget = client.target(Constants.BASE_URL).path 
       ("/rest/usersetting").path(this.userId).path("-").path(String 
       .valueOf(565)); 

     Response res = webTarget.request(MediaType.TEXT_PLAIN).cookie(sessionCookie).get(); 
     if (res.getStatus() == 200) { 
      String s = res.readEntity(String.class); 
      LanguageBean bean = TestUtil.extractObjectFromPayload(s, LanguageBean.class); 
      this.languageCode = bean.getLanguageCode(); 
      this.variantCode = bean.getVariantCode(); 
      this.countryCode = bean.getCountryCode(); 
     } 
    } 

    public String getLanguageCode() { return this.languageCode; } 

    public String getCountryCode() { return this.countryCode; } 

    public String getVariantCode() { return this.variantCode; } 
} 

test FitNesse est comme ci-dessous:

!path C:\Projects\webservice\ws-test\target\classes 

!2 Scenario Definition 

!|scenario    |User Language |userId||password||languageCode||countryCode||variantCode| 
|processUserIdAndPassword;|@userId   |@password            | 
|check     |getLanguageCode;|@languageCode           | 
|check     |getCountryCode; |@countryCode           | 
|check     |getVariantCode; |@variantCode           | 


!2 Test run 

!|script|c.b.mc.fixture.UserLanguageFixture|userId|password| 

!|User Language               | 
|# description|userId  |password|languageCode|countryCode|variantCode| 
|Test 01  |IUSER|  |en   |null  |null  | 

J'ai soigneusement vérifié que le Fixture UserLanguageTest.class existe dans le fichier jar de la cible et également dans le sous-dossier classes du dossier cible. La partie étrange est, j'ai écrit un autre appareil dans le même paquet et ai écrit le test de simialr FitNesse pour cela. Là FitNesse est capable de trouver le luminaire.

Quelqu'un pourrait-il signaler ce qui pourrait mal se passer ici? Que puis-je vérifier de plus? L'erreur que je reçois est:

script com.b.m.fixture.UserLanguageFixture Could not invoke constructor for c.b.m.fixture.UserLanguageFixture[2] 

Répondre

0

j'ai réussi à résoudre le problème simplement en faisant constructeurs publics. Avoir des constructeurs publics est très important dans FitNesse Test.

public UserLanguageFixture(String userId, String password) { 
     this.userId = userId; 
     this.password = password; 
    } 

    public UserLanguageFixture() { 
    }