java.lang.NullPointerException w trakcie wykonywania testów automatycznych

0

Cześć, po uruchomieniu testu skrypt wysypuje się podczas próby wykonania:

@Test
public void verifyIsLogged() {
        String isTrue = homePage.isLogged();
        Assert.assertEquals(isTrue, "Jakiś tam tekst");

    }

Wyrzuca wyjątek:
java.lang.NullPointerException
at com.automation.tests.HomePageTest.verifyIsLogged(HomePageTest.java:31)

Klasy z których korzysta skrypt:
HomePageTest

public class HomePageTest extends TestBase {
    LoginPage loginPage;
    HomePage homePage;

    @BeforeMethod
    public void setUp() {
        initialization();
        loginPage = new LoginPage();
        loginPage.doLogin(prop.getProperty("user"), prop.getProperty("pass"));
    }

    /*@Test(*//*priority = 1*//*)
    public void verifyHomePageTitle() {
        boolean flag = homePage.validateHomePageTitle();
        Assert.assertTrue(flag);
    }*/

    @Test
    public void verifyIsLogged() {
        String isTrue = homePage.isLogged();
        Assert.assertEquals(isTrue, "Jakiś tam tekst");

    }

    @AfterMethod
    public void tearDown() {
        driver.quit();
    }
}

HomePage

public class HomePage extends TestBase {

 

    @FindBy(xpath = ".//*[contains(text(), 'Zalogowany')]")
    WebElement homePageTitle;

    public HomePage() {
        PageFactory.initElements(driver, this);
    }


    public String isLogged() {
        return driver.getTitle();
    }
}

LoginPageTest

public class LoginPageTest extends TestBase {
    LoginPage loginPage;


  
    @BeforeMethod
    public void setUp() {
        initialization();
        loginPage = new LoginPage();
        /*loginPage.doLogin(prop.getProperty("user"), prop.getProperty("pass"));*/
    }

  
    @Test(priority = 0)
    public void verifyPageTitle() {
        String title = loginPage.validateLoginPageTitle();
        Assert.assertEquals(title, "Jakiś tam tekst");
    }


    @Test(priority = 1)
    public void loginTest() {
        loginPage.doLogin(prop.getProperty("user"), prop.getProperty("pass"));
    }


    
    @AfterMethod
    public void tearDown() {
        driver.quit();
    }
}

TestBase

public class TestBase {

    public static WebDriver driver;
   
    public static Properties prop;
  
    public static long PAGE_LOAD_TIMEOUT = 20;
    public static long IMPLICIT_WAIT = 20;


    public TestBase() {
        try {
            prop = new Properties();
            FileInputStream ip = new FileInputStream("src/test/java/*.properties");
            prop.load(ip);
            /*System.out.println(prop.getProperty("url"));
            System.out.println(prop.getProperty("user"));
            System.out.println(prop.getProperty("pass"));*/
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

   
    public static void initialization() {
        System.setProperty("webdriver.gecko.driver", "drivers/geckodriver.exe");
        driver = new FirefoxDriver();
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().pageLoadTimeout(PAGE_LOAD_TIMEOUT, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(IMPLICIT_WAIT, TimeUnit.SECONDS);
        driver.get(prop.getProperty("url"));
    }


}

LoginPage

public class LoginPage extends TestBase {

    @FindBy(name = "username")
    WebElement username;

    @FindBy(name = "password")
    WebElement password;

    @FindBy(id = "zaloguj")
    WebElement submit;



    public LoginPage() {
        PageFactory.initElements(driver, this);
    }

    public String validateLoginPageTitle() {

        return driver.getTitle();
    }


    public LoginPage doLogin(String user, String pass) {
        username.sendKeys(user);
        password.sendKeys(pass);

        submit.click();

        return new LoginPage();
    }
}

Może ktoś udzielić rady co tu jest nie tak? Dodam że test LoginPageTest wykonuje się bez błędu, stąd moje zdziwienie że w drugim przypadku leci wyjątek.

0

homePage w teście masz null.

0
lukaszek016 napisał(a):

homePage w teście masz null.

Nie ogarniam. Identycznie skonstruowałem test jak w przypadku LoginPageTest i tam żadnego wyjątku nie ma :(

0
public class HomePageTest extends TestBase {
    LoginPage loginPage;
   HomePage homePage;      <<<<------------------------------

    @BeforeMethod
    public void setUp() {
        initialization();
        loginPage = new LoginPage();
        loginPage.doLogin(prop.getProperty("user"), prop.getProperty("pass"));
    }

Powiedz gdzie to inicjalizujesz? W teście LoginPage w konstruktorze, a tutaj nic takiego nie widze.

0
lukaszek016 napisał(a):
public class HomePageTest extends TestBase {
    LoginPage loginPage;
   HomePage homePage;      <<<<------------------------------

    @BeforeMethod
    public void setUp() {
        initialization();
        loginPage = new LoginPage();
        loginPage.doLogin(prop.getProperty("user"), prop.getProperty("pass"));
    }

Powiedz gdzie to inicjalizujesz? W teście LoginPage w konstruktorze, a tutaj nic takiego nie widze.

Weekend wisi w powietrzu, czas przewietrzyć głowę. Dzięki za odpowiedź :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1