1
resposta

solução

public class AnoBissexto {

    public boolean ehBissexto(int anoInt) {

        Ano ano = new Ano(anoInt);

        if ((ano.ehMultiploDe(4) && !ano.ehMultiploDe(100)) || ano.ehMultiploDe(400)) {
            return true;
        }

        return false;
    }

    private class Ano {

        private int ano;

        public Ano(int ano) {
            this.ano = ano;
        }

        public boolean ehMultiploDe(int divisor) {
            return ano % divisor == 0;
        }
    }
}
public class AnoBissextoTest {

    @Test
    public void deveSerMultiploDe4() {

        assertEquals(true, new AnoBissexto().ehBissexto(16));
    }

    @Test
    public void naoDeveSerMultiploDe100ExcetoQuandoMultiploDe400() {
        assertEquals(true, new AnoBissexto().ehBissexto(800));
        assertEquals(false, new AnoBissexto().ehBissexto(500));
    }

}
1 resposta

Legal ITALO, eu só colocaria mais esses dois cenários:

@Test
public void deveRetornarAnoBissexto() {        
    AnoBissexto anoBissexto = new AnoBissexto();

    assertEquals(true, anoBissexto.ehBissexto(2016));
    assertEquals(true, anoBissexto.ehBissexto(2012));
}

@Test
public void naoDeveRetornarAnoBissexto() {        
    AnoBissexto anoBissexto = new AnoBissexto();        

    assertEquals(false, anoBissexto.ehBissexto(2015));
    assertEquals(false, anoBissexto.ehBissexto(2011));
}

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software