SóProvas


ID
1725349
Banca
FCC
Órgão
MPE-PB
Ano
2015
Provas
Disciplina
Programação
Assuntos

Atenção: Considere as informações abaixo para responder à questão.

Para realizar testes com o JUnit considere o caso apresentado em seguida: o problema FizzBuzz.

FizzBuzz consiste em exibir uma lista de 1 a 30, um em cada linha, e filtrar todos os números respeitando as regras:

− números divisíveis por 3 devem retornar "Fizz"

− números divisíveis por 5 devem retornar "Buzz"

− números divisíveis por 3 e 5 devem retornar "FizzBuzz"

Antes de começar a escrever os testes, é preciso definir o que precisa ser testado, para isso foi criada a lista abaixo com todos os testes que serão necessários: 

[1] Retornar 1 ao passar 1;
[2] Retornar 2 ao passar 2;
[3] Retornar Fizz ao passar 3;
[4] Retornar 4 ao passar 4;
[5] Retornar Buzz ao passar 5;
[6] Retornar Fizz ao passar 6;
[7] Retornar 7 ao passar 7;
[8] Retornar 8 ao passar 8;
[9] Retornar Fizz ao passar 9;
[10] Retornar Buzz ao passar 10;
[11] Retornar FizzBuzz ao passar 15;
[12] Retornar FizzBuzz ao passar 30. 

Considere a classe Fizzbuzz e o método verificaFizzbuzz () em Java: 

public class Fizzbuzz {

       public String verificaFizzbuzz(Integer numero) {

              if (numero % 3 == 0) {

                   return "Fizz";

              } else if (numero % 5 == 0) {

                   return "Buzz";

              } else {

                   return numero.toString();

               }

        }    

}  

O teste 11 deve retornar "FizzBuzz" quando for passado 15 como parâmetro e seu código é: 

@Test

public void retornaFizzBuzzParaQuinze() {

        Fizzbuzz fizzbuzz = new Fizzbuzz();

        assertEquals("FizzBuzz", fizzbuzz.verificaFizzbuzz(15));



Em condições ideais, ao executar os testes de 1 a 11 no JUnit, todos com códigos corretos e semelhantes ao código do teste 11 acima, resulta em: 

Alternativas
Comentários
  • O código acima checa apenas 2 condições:

    Se o número é divisível por 3

    Se o número é divisível por 5

    SENÃO retorna o número (default)

    No caso do teste 11 é passado o argumento 15 que cairá no primeira condição (divisível por 3) e retornará "Fizz"

    "Fizz" é diferente de "FizzBuzz", por isso o assert abaixo falhará

    assertEquals("FizzBuzz", fizzbuzz.verificaFizzbuzz(15)); //falha

    retornaFizzBuzzParaQuinze Falhou: expected: but was:  [15 ]>

    Todos os demais testes passarão.
  • Jamais será retornado "FizzBuzz" pois o método é formado por um if e else if, sendo assim nenhuma chamada vai entrar nos dois e o return não pode ser somado a outro return.

  • A resposta correta deveria ser letra A.

    Se ele pede para testar de 1 a 11, não tem como cair no erro do FizzBuzz.

    Ou está errado, ou está muito mal escrito o enunciado.

  • Pessoal, eu achei o enunciado confuso e fiquei sem entender bem o gabarito desta questão. Mas avançando nas questões descobri que tem o seguinte enunciado (anterior) que ajusta no entendimento. Segue:

    Atenção: Considere as informações abaixo para responder à questão.
    Para realizar testes com o JUnit considere o caso apresentado em seguida: o problema FizzBuzz.
    FizzBuzz consiste em exibir uma lista de 1 a 30, um em cada linha, e filtrar todos os números respeitando as regras:

    − números divisíveis por 3 devem retornar "Fizz"
    − números divisíveis por 5 devem retornar "Buzz"
    − números divisíveis por 3 e 5 devem retornar "FizzBuzz"
    Antes de começar a escrever os testes, é preciso definir o que precisa ser testado, para isso foi criada a lista abaixo com todos os testes que serão necessários:
    [1] Retornar 1 ao passar 1;
    [2] Retornar 2 ao passar 2;
    [3] Retornar Fizz ao passar 3;
    [4] Retornar 4 ao passar 4;
    [5] Retornar Buzz ao passar 5;
    [6] Retornar Fizz ao passar 6;
    [7] Retornar 7 ao passar 7;
    [8] Retornar 8 ao passar 8;
    [9] Retornar Fizz ao passar 9;
    [10] Retornar Buzz ao passar 10;
    [11] Retornar FizzBuzz ao passar 15;
    [12] Retornar FizzBuzz ao passar 30. 

     

    Bons estudos !