Tenho que testar uma classe com o TDD e dentro da classe eu utilizei o Math.random() para gerar número aleatório. Agora que estou testando a classe e estou com dificuldade em saber o que fazer. Alguém pode me ajudar?
public class Guerreiro extends Personagem{
private List<String> habilidade = new ArrayList<>();
public List<String> getHabilidade() {
return habilidade;
}
public void setHabilidade(List<String> habilidade) {
this.habilidade = habilidade;
}
public void attack(){
int minimoValor = 0;
int maximoValor = 300;
double ataqueGuerreiro = ((super.getForca() + super.getLevel()) + (Math.random() * (maximoValor - minimoValor)));
System.out.println("Ataque do Guerreiro é de: " + ataqueGuerreiro);
}
Agora a classe GuerreiroTest:
public class GuerreiroTest {
@Mock
private Math math;
@InjectMocks
private Guerreiro guerreiro;
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
@Before
public void setUp(){
guerreiro = new Guerreiro();
System.setOut(new PrintStream(outContent));
}
@After
public void tearDown() throws IOException {
outContent.close();
}
@Test
public void testarAtackDoGuerreiroUsandoAForcaEOLEvelEGerandoUmValorAleatorioDeZeroATrezentos(){
guerreiro.setForca(56);
guerreiro.getForca();
guerreiro.setLevel(1);
guerreiro.getLevel();
//Mockito.when().thenReturn(50.0);
guerreiro.attack();
assertEquals(107, 107);
}