Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida Exercício Refatorando a classe Veiculo

Boa tarde. Eu resolvi o problema da seguinte maneira e gostaria de saber se está correta:

Primeiramente, apliquei o TDD e criei o seguinte teste na classe VeiculoTeste:

public void TestaObterInformacoesDoVeiculo()
{
    //Arrange
    Veiculo veiculo = new();
    veiculo.Proprietario = "João Carlos";
    veiculo.Placa = "TXT-6574";
    veiculo.Cor = "Azul";
    veiculo.Modelo = "Virtus";
    
    //Act
    string informacoesDoVeiculo = veiculo.ObterInformacoesDoVeiculo(veiculo);
    
    //Assert
    Assert.Contains("Informações do Veículo", informacoesDoVeiculo);
}

Logo após implementei o método ObterInformacoesDoVeiculo na classe Veiculo, da seguinte forma:

public string ObterInformacoesDoVeiculo(Veiculo veiculo) =>
    $"Informações do Veículo:\n" +
    $"Modelo: {(veiculo.Modelo ?? "Informação indisponível")}" +
    $"Cor: {(veiculo.Cor ?? "Informação indisponível")}" +
    $"Placa: {(veiculo.Placa ?? "Informação indisponível")}" +
    $"Tipo de Veículo: {(Tipo == TipoVeiculo.Automovel ? "Automóvel" : "Motocicleta")}";

O teste foi aprovado no gerenciador de testes, mas ainda assim gostaria de saber se há alguma dica de melhora ou mudança de código necessária.

Desde já, agradeço.

2 respostas
solução!

E aí, Nestor!

Pelas suas paradas, parece que tá mandando bem! Curto demais que tu seguiu a parada do TDD, primeiro fazendo o teste e depois a implementação, muito massa.

Sobre teu código, o método ObterInformacoesDoVeiculo ta de boa. Ele solta as infos do veículo e, se algo não tiver na área, manda a mensagem "Informação indisponível", que é uma jogada esperta.

Mas tenho uma ideia maneira pra tu. Seu método ObterInformacoesDoVeiculo tá pegando um veículo como parada, mas como já é um método da classe Veiculo, já dá pra acessar os atributos do veículo sem precisar passar como parâmetro. Dá uma olhada nesse esquema:

public string ObterInformacoesDoVeiculo() =>
    $"Informações do Veículo:\n" +
    $"Modelo: {(Modelo ?? "Informação indisponível")}" +
    $"Cor: {(Cor ?? "Informação indisponível")}" +
    $"Placa: {(Placa ?? "Informação indisponível")}" +
    $"Tipo de Veículo: {(Tipo == TipoVeiculo.Automovel ? "Automóvel" : "Motocicleta")}";

E no teste, tu chamaria o método assim:

string informacoesDoVeiculo = veiculo.ObterInformacoesDoVeiculo();

Espero que essa parada ajude nos teus estudos! Abração!

Muito obrigado pelas dicas!