none
Testes Unitarios RRS feed

  • Pergunta

  • Bom dia, pessoal.

    Estou fazendo alguns testes unitários pra validar uns métodos que eu fiz, porém encontrei um probleminha:

    Meu método retorna uma lista de Dto's, e preciso compara-los com os dto's esperados que eu implementei no teste, exemplo:

    Meu método retorna o dto A:

    DTO A (Nome: "João",

        Idade: 18,

        EstadoCivil: "Casado")

    ai preciso compara-lo com o DTO B que eu criei no teste unitário:

    DTO B  (Nome: "João",

        Idade: 18,

        EstadoCivil: "Casado")

    Só que eu só consigo comparar esses dto's campo por campo(usando o areEqual), ai se minha lista retorna 10 dtos, eu preciso comparar campo por campo de cada dto, assim a classe do teste fica enorme, feia, o código fica sujo, parece uma gambiarra, tem que ter outra forma melhor pra fazer isso, se alguém ai souber uma forma melhor pra comparar esses objetos, por favor, compartilhe aqui.

    Valew, galera!

    segunda-feira, 28 de setembro de 2015 11:33

Respostas

  • Bom dia!

    Obrigado pela resposta, Renato, mas neste caso, a unica forma que deu certo foi comparando diretamente com os dados de teste que eu criei no repositório, campo por campo.

    Abraços.


    • Editado Ferboni quinta-feira, 29 de outubro de 2015 11:45
    • Marcado como Resposta Ferboni quinta-feira, 29 de outubro de 2015 11:45
    quinta-feira, 29 de outubro de 2015 11:45

Todas as Respostas

  • Vc pode sobrescrever os métodos Equals e HashCode, de forma que uma simples comparação como a indicada a seguir retorne true (se realmente os objetos representarem a mesma coisa, o que vai depender de critérios que vc especificar nestes métodos):

    if (objA == objB)
    {
        // Faz alguma coisa...
    }

    Eu escrevi tempos atrás um artigo em que detalho como este tipo de implementação pode ser feita:

    http://www.linhadecodigo.com.br/artigo/3459/comparacao-de-objetos-em-net-com-csharp.aspx

    segunda-feira, 28 de setembro de 2015 12:25
  • Bom dia!

    Obrigado pela resposta, Renato, mas neste caso, a unica forma que deu certo foi comparando diretamente com os dados de teste que eu criei no repositório, campo por campo.

    Abraços.


    • Editado Ferboni quinta-feira, 29 de outubro de 2015 11:45
    • Marcado como Resposta Ferboni quinta-feira, 29 de outubro de 2015 11:45
    quinta-feira, 29 de outubro de 2015 11:45