Post

1 Star2 Stars3 Stars4 Stars5 Stars
Loading ... Loading ...

By Jailton Alkimin Louzada
O TestNG disponibiliza um tipo de annotation que pode ser muito útil em nossos testes, principalmente em testes Orientado a Dados (Data-Driven Testing) o annotation chamado @DataProvider, com esse annotation é possivel criar uma massa de dados no qual se pode utilizar em nossos casos de teste (@Test).
Um metodo marcado como @DataProvider tem como função prover dados para um outro método (caso de teste) marcado como @Test, para isso o método marcado como @DataProvider deve retornar um Object [][] com os valores desejados, no exemplo exibido abaixo é retornado um ArrayList. Para o método marcado como @Test receber esses valores providos pelo data provider é necessário definir o nome do data provider a ser utilizado, por exemplo: @Test(dataProvider = “Valores”) e no data provider definir o mesmo com o nome usado pelo caso de teste, por exemplo: @DataProvider(name = “Valores”). Veja o exemplo abaixo (Código anexado no final).
package com.jailtonalkiminlouzda.dataprovider;

import java.util.ArrayList;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;

public class DataProviderTest {

Selenium selenium;
String URL = “http://www.google.com”;

@BeforeTest
public void setup() throws Exception
{
selenium = new DefaultSelenium(“localhost”, 4444, “*firefox”, URL);
selenium.start();
selenium.windowMaximize();
selenium.windowFocus();
}

@DataProvider(name = “Valores”)
public Object[][] dataProvider1() {

ArrayList arrayDemanda = new ArrayList();
arrayDemanda.add(“MARIA”);
arrayDemanda.add(“JOAO”);
arrayDemanda.add(“JOSE”);
arrayDemanda.add(“CACHORRO”);
arrayDemanda.add(“GATO”);
arrayDemanda.add(“CASA”);
arrayDemanda.add(“FACA”);

return new Object[][]{{arrayDemanda}};
}

@Test(dataProvider = “Valores”)
public void testCase1(ArrayList valor){

for (String EachValue : valor) {

selenium.open(“/”);
selenium.type(“q”, EachValue);
selenium.click(“btnG”);
}

}

@AfterTest
public void finaliza() throws Exception
{
selenium.stop();
}
}
Lembrando que pode-se criar mais de um método do tipo data provider. O TestNG permite também utilizar outras classes com métodos marcados como data providers para gerar massas de dados (em breve em um novo post).
Download do projeto: Link (sem o selenium-server.jar)

Source: http://www.jailtonalkiminlouzada.com/2010/10/utilizando-data-provider-testng/

Category: TestNG

Você também pode querer ler

Comments are off for this post.