Olá Igor! Tudo bem?
Pelo que você descreveu, você já está no caminho certo, mas vamos verificar alguns pontos que podem estar causando o erro nos seus testes.
Verifique o Método ExecutaAsync
: Certifique-se de que o método ExecutaAsync
da classe Help
está implementado corretamente para retornar um resultado com IsFailed
quando o comando não existir e IsSuccess
quando o comando existir. Parece que a lógica dentro do método pode não estar tratando corretamente os comandos inválidos.
Tratamento de Exceções: No contexto que você forneceu, há uma menção de que é necessário lançar uma exceção (throw new ArgumentException()
) quando o comando não for encontrado. Verifique se essa lógica está implementada no método ExecutaAsync
.
Consistência nos Nomes dos Métodos: Notei que há uma pequena diferença no nome do método ExecutarAsync
mencionado no contexto e ExecutaAsync
que você usou no seu código. Certifique-se de que o nome do método está correto e consistente em todo o seu código.
Teste com Comandos Válidos: Para os testes que verificam comandos válidos, assegure-se de que a documentação para esses comandos está realmente disponível e que o método ExecutaAsync
está retornando IsSuccess
corretamente.
Aqui está um exemplo de como você pode verificar a implementação do método ExecutaAsync
:
public class Help
{
private string comando;
public Help(string comando)
{
this.comando = comando;
}
public async Task<Resultado> ExecutaAsync()
{
var resultado = new Resultado();
// Simulação de lógica para verificar se o comando existe
if (comando == "help" || comando == "show" || comando == "list" || comando == "import")
{
resultado.IsSuccess = true;
}
else
{
resultado.IsFailed = true;
resultado.Mensagem = "Comando não encontrado!";
throw new ArgumentException("Comando inválido");
}
return await Task.FromResult(resultado);
}
}
public class Resultado
{
public bool IsSuccess { get; set; }
public bool IsFailed { get; set; }
public string Mensagem { get; set; }
}
Espero que essas dicas ajudem a resolver o problema com seus testes.
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.