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

assertTrue passando mesmo com nome null

    @Test
    public void deveQuebrarComNameNull() {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\SouthSystem\\Desktop\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("http://localhost:8080/usuarios/new");

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

        email.sendKeys("lucasbjacob@example.com");

        email.submit();

        assertTrue(driver.getPageSource().contains("Nome obrigatorio!"));
        assertTrue(driver.getPageSource().contains("lucasbjacob@example.com"));
        driver.close();
    }

quando rodo este teste, ele está dando certo. Só que estou encucada pois no momento em que apareceu a mensagem de "Nome Obrigatório", não era para não existir aquele email?

4 respostas

Embora eu não esteja fazendo esse curso, me parece que a submissão falhou de alguma forma e foi devolvida para adicionar as informações faltantes, nesse caso o Nome.

na prática é isso que acontece, então por que a linha

assertTrue(driver.getPageSource().contains("lucasbjacob@example.com"));

dá true, tendo em vista que não foi feito o cadastro do usuário?

solução!

Porque o framework mvc, provavelmente o Spring MVC, valida e devolve com os mesmos valores que foram inseridos na submissão. Essa é uma regra de UX( não obrigar o usuário a fazer o mesmo trabalho mais de uma vez).

entendi melhor, Carlos. eu não sou muito boa em front, sou dev de Java somente e na minha percepção, os asserts eram feitos na tela de crud e não no que enviávamos. porém agora entendi que eles são feitos na requisição que mandamos para o site e não no que o site faz com ele depois (insere no banco e tal).

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