Eu preciso testar um método, mas ele tem retorno void, como faço isso? Tentei dividir ele em dois métodos, um com algum retorno, e outro que imprimisse mas não consegui.
É uma classe Pizza, que adiciona os ingredientes em uma lista, e esse método contabiliza e imprime todos os ingredientes.
Quando existe mais de um ingrediente, o método contabiliza ele corretamente, mas imprime duas vezes o nome do ingrediente conforme a ordem que eles aparecem na lista. Vocês poderiam me ajudar a consertar isso também?
Como você está tentando testar esse método? Já tem algo escrito?
Testar métodos void é realmente algo mais complicado, pois depende do que o método tem que fazer. Nesse seu caso, ele vai contar os ingredientes. O bom é que o teste vai ajudar a identificar possíveis falhas no código escrito.
Nesse seu caso, seria mais fácil testar esse método se ele retornasse o total de ingredientes, isso iria fazer com que esse método fizesse mais sentido do que apenas imprimir algum valor no console com System.out.println.
Vc pode postar a classe completa para podermos entender melhor o objetivo dela? Vendo só esse método, a recomendação que faço é fazer com que ele retorne o total mesmo.
Eu tentei fazer o método retornar o frequency, em vez de imprimir ele na tela, só que daí ele só retorna o valor do primeiro item da lista. Aí eu tentei fazer ele retornar o frequency como uma lista, mas não consegui fazer isso, o código só dava erro.
L
Lucas_Camara
Pelo que estou entendendo, o método contaIngredientes deve contar o total por tipo de ingrediente dentro da lista de ingredientes. Se for isso mesmo, o retorno desse método seja um Map, pois vc terá um total para cada ingrediente que é usado na lista de ingredientes. Ex.:
É isso mesmo que esse método contaIngredientes tem que fazer?
C
ClarissaAndrade
É isso mesmo que o método tem que fazer.
A sua sugestão é que ele retorne um Map? Daí esse Map daria para testar?
Você pode me mostrar como eu faço isso, por favor?
Caraca, Lucas! Valeu mesmo!
Estou fazendo um curso de Java, mas o curso é muito ruim, didática péssima, não ensina nada você a fazer as coisas e já pede pra entregar o exercício, aí estou perdidona. Mas, brigadão.
L
Lucas_Camara
Aqui no GUJ tem muita gente que entende bastante de testes, sem falar que teste é algo fundamental para um bom desenvolvimento e, em muitas vezes, deixado de lado. Aqui no meu trabalho a galera força muito a questão de testes (seja unitário, integração ou até mesmo funcional, dependendo do caso). Mas teste unitário sempre é bom fazer.
Esse seu exemplo é muito para fazer uns testes bacanas. Qualquer dúvida, soh falar.
Qual curso vc está fazendo?
obs.: Nessa classe de teste, usei o JUnit na versão 5 ok. Se vc rodar ele com a versão 4 do JUnit, não vai funcionar.
C
ClarissaAndrade
Eu estou fazendo um que é o primeiro módulo de uma especialização do ITA, chama Orientação a Objetos com Java, fica na plataforma Coursera. Mas não gostei.
Você conhece algum curso bom?
Eu trabalho com suporte hoje, mas em fevereiro vou começar a trabalhar com desenvolvimento, aí tava querendo ir praticando bastante antes de entrar.
L
Lucas_Camara
Uns cursos bem avaliados que vejo muito a galera comentar são esses: