Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Teste Unitário - VisualStudio

Oi pessoal, no curso o instrutor usou Nunit e repetia o cenário de teste por diversas vezes (pelo menos até a parte que estou no curso). Eu estou usando um projeto de teste de unidade do próprio Visual Studio, tem algum problema? E também montei o cenário de forma que não preciso ficar repetindo o mesmo trecho de código a cada teste.

Gostaria que analisassem meu código e me falassem se estou fazendo de forma correta:

 [TestClass]
    public class TesteDoAvaliador
    {
        private Leilao leilao;

        [TestInitialize]
        public void Init()
        {
            this.leilao = new Leilao("Iphone 7");
            this.PreencheCenario();
        }

        private void PreencheCenario()
        {

            List<Lance> lances = new List<Lance>
            {
                new Lance(new Usuario("Henrique"), 1000),
                new Lance(new Usuario("Juliana"), 2000),
                new Lance(new Usuario("Regina"), 3000),
            };

            lances.ForEach(lance => this.leilao.Propoe(lance));

        }

        [TestMethod]
        public void MenorLance()
        {
            Avaliador avaliador = new Avaliador();
            avaliador.Avalia(leilao);

            Assert.AreEqual(1000, avaliador.MenorValor);
        }

        [TestMethod]
        public void MaiorLance()
        {
            Avaliador avaliador = new Avaliador();
            avaliador.Avalia(leilao);

            Assert.AreEqual(3000, avaliador.MaiorValor);
        }

        [TestMethod]
        public void MediaDeLances()
        {
            Avaliador avaliador = new Avaliador();
            avaliador.Avalia(leilao);

            Assert.AreEqual(2000, avaliador.MediaDeLances);
        }
    }
1 resposta
solução!

Oi Henrique, tudo bom?

Certinho, o código está bem isolado em um método privado. Muito bom.

Pra melhorar, você poderia isolar esse método privado em uma classe mesmo.

Algo como uma fabrica de lances (LanceFactory) na qual você apenas chama o método mesmo.