Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

Erro no teste do Show.

Esse é o meu log de erro:

  Message: 
System.ArgumentOutOfRangeException : Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')

  Stack Trace: 
List`1.get_Item(Int32 index)
ShowTest.QuandoArquivoExistenteDeveRetornarMensagemDeSucesso() line 28
--- End of stack trace from previous location ---
1 resposta

Oi Igor! Tudo certo?

O erro System.ArgumentOutOfRangeException indica que o índice que você está tentando acessar está fora do intervalo da coleção. Vamos ver o que pode estar acontecendo:

  1. Verifique a Lista: Certifique-se de que a lista que você está tentando acessar tem elementos antes de acessar o índice. No seu teste, você está acessando resultado.Successes[0]. Verifique se resultado.Successes realmente contém elementos antes de tentar acessar o índice 0.

  2. Mock Correto: Assegure-se de que o mock que você está usando (LeitorDeArquivosMockBuilder.GetMock(listaDePet)) está configurado corretamente para retornar uma lista não vazia quando o método RealizaLeitura() é chamado. Se RealizaLeitura() não estiver retornando a lista esperada, resultado.Successes pode acabar sendo vazio.

  3. Verifique o Setup do Mock: No trecho leitor.Setup(_ => _.RealizaLeitura());, certifique-se de que está configurando o mock para retornar a lista de pets corretamente. Pode ser necessário usar .ReturnsAsync(listaDePet) ou algo similar para garantir que o mock está retornando a lista esperada.

  4. Teste o Comportamento: Antes de acessar resultado.Successes[0], você pode adicionar uma verificação para garantir que resultado.Successes não está vazio. Por exemplo:

    Assert.NotEmpty(resultado.Successes);
    

Aqui está um exemplo de como você poderia ajustar o teste para verificar se a lista não está vazia antes de acessar o índice:

//Assert
Assert.NotNull(resultado);
Assert.NotEmpty(resultado.Successes); // Verifica se há elementos
var sucesso = (SuccessWithPets)resultado.Successes[0];
Assert.Equal("Exibição do arquivo realizada com sucesso!", sucesso.Message);

Espero que essas dicas te ajudem a resolver o problema! Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.