2016-07-06 5 views
-3

Ich bin ein QA-Ingenieur, der ein Testskript schreibt. Ich versuche, eine URL-Zeichenfolge-Variable festzulegen, die der URL der aktuellen Seite in einer Methode entspricht, und die Methode aufzurufen, die die Variable in einer Testmethode enthält.NullPointerException beim Aufruf einer Variablen aus einer anderen Klasse

* Edit **** Ursprünglich dachte ich, dies sei ein Problem mit der Variablen selbst, aber das ist nicht der Fall. Ich habe meine Frage angepasst das Problem besser darzustellen

Wenn ich die URL-Variable in der gleichen Klasse und ein Verfahren einleiten und definieren als Test es

public void RFPsCreatedStatusTest(){ 
    RequestsataGlance.RFPinProgressbtnclick(); 
    RequestsataGlance.CreatedClick(); 
    String url = driver.getCurrentUrl(); 
    System.out.println(url); 
Assert.assertTrue(url.contains("url.com"), "Incorrect Page, SR list call status does not match status selected "); 

gut funktioniert Aber wenn ich erstellen und rufen Sie die public void() {} URL-Methode [createdasertion] getrennt von außerhalb der Testmethode und Klasse funktioniert es nicht. Gedanken?

@Test 
     public void RFPsCreatedStatusTest(){ 
      RequestsataGlance.RFPinProgressbtnclick(); 
      RequestsataGlance.CreatedClick(); 
      RequestsataGlance.Createdassertion(); 


     }` 
+0

ich die Frage besser bearbeitet haben, um das Problem – Lamar

Antwort

2

die Linie unterhalb nutzlos ist, wie Sie url Variable in nächste Anweisung

url = new String(); 

nach der Linie

url = driver.getCurrentUrl(); 

URL der Browser-URL neu definieren enthält, dann warum sollte es enthält die Zeichenfolge "[erwartetes Ergebnis]"? Natürlich wird es nicht, da es 1

aus Definition

assertTrue(java.lang.String message, boolean condition) 

so dass es eine URL

EDIT enthält verwenden, wie unten

Assert.assertTrue("Incorrect Page, SR list call status does not match status selected ", url.contains("whatever.com")); 
+0

Ich entschuldige mich für die Verwirrung zu reflektieren ich weiß, dass Es wird zurückgegeben, was auch immer die URL ist, aber da es keine gab, habe ich [erwartete Bedingung] als schlechte Wahl für einen Platzhalter gesetzt. – Lamar

+0

dann vielleicht die 'driver.getCurrentUrl();' Anweisung gibt nichts zurück, das ist es gibt null zurück und so können Sie nicht die URL-Variable – ddb

+0

Guter Gedanke, ich definierte die URL zu "123", die Behauptung sollte gescheitert sein, aber stattdessen habe ich immer noch die Ausnahme. – Lamar

1

Der einzige Weg, alles kann null in Ihrem Code ist, wenn

driver.getCurrentUrl() 

gibt null zurück. Schließlich haben Sie einen Test geschrieben und ein Problem gefunden. Einfach reparieren! ;-)

Btw Code .: viel leichter zu lesen sein wird, wenn man einfach schreiben:

String url = driver.getCurrentUrl(); 
+0

Einige zusätzliche Details zum Original hinzugefügt Post – Lamar