Será que este teste está correto

1 resposta
A
Olá pessoal escrevi um teste utilizando a metodologia tdd, o teste passou. Mais gostaria de saber se a maneira como o escrevi está correta, se tem uma maneira melhor para fazê-lo, e como refatorar pois essa parte não consegui. Está escrito em C#, desculpem mas se puderem me ajudar msm assim.
[TestMethod]
        public void Locacao_de_filme()
        {
            LocacaoEntity locacao = new LocacaoEntity();
            locacao.NCliente = "Pedro";
            locacao.CodFilme = "123-A";
            locacao.QtdFilmes = 1;
            locacao.dataLocacao = new DateTime(2011, 4, 2);
            locacao.dataDevolucao = new DateTime (2011, 4, 5);

            var mock = new Moq.Mock<ILocacaoDAL>();
            mock.Setup(x => x.Locar(locacao)).Returns(true);

            LocacaoBusiness locacaoBusiness = new LocacaoBusiness(mock.Object);

            bool locacao_realizada = locacaoBusiness.Locar(locacao);
            Assert.IsTrue(locacao_realizada);
class Business
public class LocacaoBusiness
    {
        private ILocacaoDAL _locacaoDAL = null;
        public LocacaoBusiness(ILocacaoDAL locacaoDAL)
        {
            _locacaoDAL = locacaoDAL;
        }

        public bool Locar(LocacaoEntity locacao)
        {
            DateTime dataAtual = DateTime.Today;
            if (DateTime.Compare(dataAtual, locacao.dataLocacao) > 0)
            {
                throw (new Exception("Data de Locação Inválida"));
            }
            else if (DateTime.Compare(locacao.dataLocacao, locacao.dataDevolucao) > 0)
            {
                throw (new Exception("Data de Devolução Inválida"));
            }
            else if (locacao.NCliente != "Pedro")
            {
                throw (new Exception("Cliente não cadastrado"));
            }
            else if (locacao.CodFilme != "123-A")
            {
                throw (new Exception("Filme não cadastrado"));
            }
            else if (locacao.QtdFilmes > 6)
            {
                throw (new Exception("Quantidade de filmes não permitida"));
            }
         
            return _locacaoDAL.Locar(locacao);
        }
class entity
public class LocacaoEntity
    {
        public String NCliente { get; set; }
        public String CodFilme { get; set; }
        public int QtdFilmes { get; set; }
        public DateTime dataLocacao { get; set; }
        public DateTime dataDevolucao { get; set; }
    }
class DAL
namespace Locadora
{
    public interface ILocacaoDAL
    {
        bool Locar(LocacaoEntity locacao);
    }

Vlw!!!

1 Resposta

esmiralha

Por que você não melhora a legibilidade do teste? Dê um nome melhor pra ele que descreva o que você está testando.

Criado 7 de abril de 2011
Ultima resposta 7 de abr. de 2011
Respostas 1
Participantes 2