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

assertTrue() gerando erro Type mismatch: cannot convert from void to boolean

Pessoal, Estou recebendo erro do Junit ao utilizar o assertTrue no teste do usuário cadastrado. Segue o erro: Type mismatch: cannot convert from void to boolean versão java so: openjdk version "1.8.0_151" Por conta de um problema no selenium, a seção java compiler->JDK compliance-> use compliance form execution... está com a chechbox desmarcada e Compiler Compliance Level está configurada para 1.7

import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;


public class UsuarioSystemTest {
    @Test
    public static void deveAdicionarUmUsuario() {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://localhost:8080/usuarios/new");

        WebElement nome = driver.findElement(By.name("usuario.nome"));
        WebElement email = driver.findElement(By.name("usuario.email"));

        nome.sendKeys("Seu Boneco");
        email.sendKeys("boneco@gmail.com");

        WebElement botaoSalvar = driver.findElement(By.id("btnSalvar"));
        botaoSalvar.click();

        boolean achouNome = driver.getPageSource().contains("Seu Boneco");
        boolean achouEmail = driver.getPageSource().contains("boneco@gmail.com");

        assert

        assertTrue(achouNome);



    }

}
2 respostas

Olá Giulliano, Parece que o achouNome está sem nada atribuido, neste caso o método contains parece ter retornado void.

Pesquisando um dos motivos para isso ocorrer é a página ainda não ter carregado quando o método getPageSource é executado, o que faz com que ele retorne vazio por não ter ainda um código fonte para retornar.

Uma opção é esperar até a página carregar para então executar esta parte do código.

Isso pode ser alcançado usando o WebDriverWait, a documentação dele está aqui -> https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/WebDriverWait.html

solução!

Fala pessoal, infelizmente o problema não era a sugestão do Rafael, no entanto, a implementação do WebDriverWait ajudou a resolver o problema!

Com a implementação do WebDriberWait, o Junit parou de reclamar do assertTrue e passou a reclamar da assinatura do método! Tirando o public static void e colocando a assinatura correta rodou tranquilo! Valeu!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software