Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

depois da formatação final passou a não abrir. (aula 2)

java.lang.NullPointerException
    at br.com.alura.leilao.login.LoginTest.TenteLogarComDadosInvalidos(LoginTest.java:48)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
7 respostas
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;

O problema é que @BeforeAll, @BeforeEach e @AfterEach não estão sendo chamados, estou utilizando o IntelliJ e ainda não descobri o pq. PS: Eles estão sendo importados corretamente

Oi Icaro,

Está com problemas na linha 48 da sua classe LoginTest.

Posta aqui o código da sua classe para a gente entender o que pode ser.

package br.com.alura.leilao.login;

import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;


public class LoginTest {

    private LoginPage paginaDeLogin;

    @BeforeEach
    public void beforeEach() {
        this.paginaDeLogin = new LoginPage();
    }

    @AfterEach
    public void afterEach() {
        this.paginaDeLogin.fechar();
    }

    @Test
    public void LoginComDadosValidos(){
        paginaDeLogin.preencheFormDeLogin("fulano", "pass");
        paginaDeLogin.EnviarLogin();

        Assert.assertFalse(paginaDeLogin.isPaginaDeLogin() );
        Assert.assertEquals("fulano", paginaDeLogin.getNomeUserLogado());

    }

    @Test
    public void TenteLogarComDadosInvalidos(){
        paginaDeLogin.preencheFormDeLogin("invalido", "1234");
        paginaDeLogin.EnviarLogin();

        Assert.assertTrue(paginaDeLogin.isPaginaDeLoginComDadosInvalidos());
        Assert.assertNull(paginaDeLogin.getNomeUserLogado());
        Assert.assertFalse(paginaDeLogin.contemTxt("Usuário e senha inválidos. "));

    }

    @Test
    public void PaginaRestritaSemLogin(){

        paginaDeLogin.navegaParaPaginaDeLances();

        Assert.assertTrue(paginaDeLogin.isPaginaDeLogin() );
        Assert.assertFalse(paginaDeLogin.contemTxt("Dados do Leilão"));

    }
}

O erro mudou pq eu configurei de acordo com a aula de '03 - Aplicando Page Object nos testes', ele fica mandando eu encontrar o pq 'paginaDeLogin' pode ser nula.

essa é a classe LoginPage

package br.com.alura.leilao.login;

import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class LoginPage {
    private static final String LOGIN = "http://localhost:8080/login";
    private WebDriver browser;

    public LoginPage(){
        System.setProperty("webdriver.chrome.driver", "drivers/chromedriver.exe");
        this.browser = new ChromeDriver();
        this.browser.navigate().to(LOGIN);
    }

    public void fechar() {
        this.browser.quit();
    }

    public void preencheFormDeLogin(String username, String password) {
        browser.findElement(By.id("username")).sendKeys(username);
        browser.findElement(By.id("password")).sendKeys(password);
    }

    public void EnviarLogin() {
        browser.findElement(By.id("login-form")).submit();
    }

    public boolean isPaginaDeLogin() {
        return browser.getCurrentUrl().equals(LOGIN);
    }

    public Object getNomeUserLogado() {
        try{
            return browser.findElement(By.id("usuario-logado")).getText();
        }catch (NoSuchElementException e){
            return null;
        }

    }

    public void navegaParaPaginaDeLances() {
        this.browser.navigate().to("http://localhost:8080/leiloes/2");
    }

    public boolean contemTxt(String texto) {
        return browser.getPageSource().contains(texto);
    }

    public boolean isPaginaDeLoginComDadosInvalidos() {
        return  browser.getCurrentUrl().equals(LOGIN + "?error");
    }

}
solução!

Oi Icaro,

Acho que o problema é que os métodos @BeforeEach e @AfterEach não estão sendo chamados mesmo.

E acho que não estão sendo chamados porque o import da anotação @Test está incorreto.

Altere para:

import org.junit.jupiter.api.Test;

era isso mesmo OBG!!!!