Na questão é preciso selecionar as duas alternativas corretas, considerando o seguinte código
[Fact]
public void TestaObterTodosClientes()
{
//Arrange
var _repositorio = new ByteBankContexto();
//Act
List<Cliente> lista = _repositorio.ObterTodos();
//Assert
Assert.NotNull(lista);
Assert.Equal(3, lista.Count);
}
A alternativa 1
Apesar de possível, não é recomendado na escrita do passo Assert mais de uma verificação.
é considerada como incorreta, porém, de acordo com o clean code, não é justamente recomendado um único assert por teste unitário (um teste deve validar apenas uma única coisa)?
Nesse caso, a validação de que a lista é nula não seria desnecessária, visto que validar se a lista possui itens já validaria a existência dela? Ou seja, se ela possui itens, concluímos que ela existe. Se não possui ou é nula, com apenas essa validação de tamanho, o teste irá falhar, o que está correto.
A alternativa 3
Uma alternativa de Assert é a utilização do método .True, como no exemplo: Assert.True((lista.Count != 0));
é considerada correta, porém o mais adequado não seria Assert.NotEmpty(lista);
?