Olá galera. O professor sugere fazer uma mudança no código:
03 Testando validação do cadastro de leilão
"O que acontece se cadastrarmos um leilão sem nome ou valor inicial? Uma mensagem de validação deve aparecer!
Escreva o teste que garanta que isso aconteça.
Lembre-se que um bom lugar para colocar o código que checa se a validação apareceu é no próprio NovoLeilaoPage."
Porém ele só passa a resolução do código na classe NovoLeilaoPage, não passa o código da classe de teste:
No final eu coloco meu código da classe de teste que está dando erro e não sei resolver.
public class NovoLeilaoPage {
private WebDriver driver;
public NovoLeilaoPage(WebDriver driver) {
this.driver = driver;
}
public void preenche(String nome, double valor, String usuario, boolean usado) {
WebElement txtNome = driver.findElement(By.name("leilao.nome"));
WebElement txtValor = driver.findElement(By.name("leilao.valorInicial"));
txtNome.sendKeys(nome);
txtValor.sendKeys(String.valueOf(valor));
WebElement combo = driver.findElement(By.name("leilao.usuario.id"));
Select cbUsuario = new Select(combo);
cbUsuario.selectByVisibleText(usuario);
if(usado) {
WebElement ckUsado = driver.findElement(By.name("leilao.usado"));
ckUsado.click();
}
txtNome.submit();
}
public boolean validacaoDeProdutoApareceu() {
return driver.getPageSource().contains("Nome obrigatorio!");
}
public boolean validacaoDeValorApareceu() {
return driver.getPageSource()
.contains("Valor inicial deve ser maior que zero!");
}
}
Agora o código da minha classe de testes:
package br.com.caelum.teste;
import static org.junit.Assert.assertTrue;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class LeiloesSystemTest {
private WebDriver driver;
private LeiloesPage leiloesPage;
@Before
public void inicializa() {
System.setProperty("webdriver.gecko.driver", "C:\\geckodriver.exe");
this.driver = new FirefoxDriver();
this.leiloesPage = new LeiloesPage(driver);
// UsuariosPage usuariosPage = new UsuariosPage(driver);
// usuariosPage.visita();
// usuariosPage.novo().cadastra("Paulo Henrique", "paulo.henrique@hotmail.com");
}
// @Test
// public void DeveCadastrarUmLeilao() {
// leiloesPage.visita();
//
// leiloesPage.novo().preenche("Fogão", 1000, "Paulo Henrique", true);
//
//// NovoLeilaoPage novoLeilaoPage = leiloesPage.novo();
//// novoLeilaoPage.preenche("Fogão", 1000, "Paulo Henrique", true);
//
// assertTrue(leiloesPage.existe("Fogão", 1000, "Paulo Henrique", true));
// }
@Test
public void naoDeveCadastrarLeilaoSemNomeOuValor() {
leiloesPage.visita();
leiloesPage.novo().preenche("Fogão", 110, "Paulo Henrique", true);
//assertTrue(leiloesPage.novo().validacaoDeProdutoApareceu() && leiloesPage.novo().validacaoDeValorApareceu());
assertTrue(leiloesPage.novo().validacaoDeProdutoApareceu());
assertTrue(leiloesPage.novo().validacaoDeValorApareceu());
}
@After
public void finaliza() {
driver.close();
}
}