Problemas ao testar fluxo de compra com capybara + site prism

Topic created · 8 Posts · 87 Visualizações
  • Bom dia.
    Estou escrevendo alguns testes com capybara e site prism, estou especificamente fazendo um fluxo de compra em uma loja, basicamente o fluxo é este:

    • Procurar e selecionar produto
    • Preencher informação adicional
    • Comprar produto
    • Verificar dados no carrinho
    • Não permitir avançar sem calcular frete
    • Calcular frete

    Cada elemento da lista é um “it” dos meus testes, o problema ocorre a partir do segundo “it”, meu teste procura e seleciona o produto, mas quando é para preencher os dados do produto ele cria uma página em branco.

    class HomePage < SitePrism::Page
    
    	element :input_busca, 'input[name="palavra_busca"]'
    	element :botao_busca, '#botao_buscar'
    
    	def busca_produto(produto)
    		input_busca.set produto
    		botao_busca.click
    	end
    end
    
    class ProdutoPage < SitePrism::Page
    	
    	element :info_adicional, '#infoAdicional_5'
    
    	def preenche_info_adicional(texto)
    		info_adicional.set texto
    	end
    end
    
    require_relative '../../pages/home.rb'
    require_relative '../../pages/produto.rb'
    
    describe 'Produto com informação adicional e prazo adicional específico' do
    
    	home_page = HomePage.new
    	produto_page = ProdutoPage.new
    
    	produto = { nome: 'informação adicional especifico', termo: '0000010' }
    
    	before(:all) do
    		visit '/'
    	end
    
    	it "Acessa o produto: #{produto[:nome]}"  do
    		home_page.busca_produto(produto[:termo])
    		teste = find('.product-name', text: "#{produto[:name]} #{produto[:termo]}").click
    		expect(page).to have_content produto[:name]
    	end
    
    	it 'Preenche a informação adicional' do
    		produto_page.preenche_info_adicional('Teste 2')
    	end
    end
    
  • Só para entender melhor…
    quando vc chama produto_page.preenche_info_adicional('Teste 2') ele atualiza a pagina com uma pagina em branco?

  • @Leonardo-Galani, beleza?

    Pelo que eu vi, parece que ele carrega uma nova página em branco.

  • Desculpa…
    Mas parece que é isso que você disse mesmo @Leonardo-Galani, é que executa muito rápido.

  • Esse negocio de um teste depender do outro… não é uma boa pratica… pq pode executar fora da ordem… e com rspec vc tb consegue executar 'it’s individualmente.

    parece que esses 2 ‘it’ s deveriam ser juntos.

    E mesmo assim se vc criar um novo it e ele ainda ficar com a pagina em branco, vc está matando a sessão em algum afterEach jogado por ai 😉

  • @Leonardo-Galani, foi o que eu pensei.
    O correto então seria criar um único teste com o fluxo completo, correto?

    Eu to em um processo de modernização dos testes aqui da empresa e com certeza começar a adotar boas práticas é importante.

  • Sim…E se vc tem múltiplos testes que usam o mesmo setup… vc pode criar um beforeEach para fazer esse setup.

  • Entendi, obrigado pela atenção.