Utilizando BDD com .Net

O que é BDD?

Behaviour Driven Development é uma técnica de desenvolvimento Ágil que visa a colaboração entre desenvolvedores, QAs e analistas, onde o foco está na documentação do comportamento do software. Além disso, melhora a comunicação de toda a equipe.

Por que utilizar BDD?

BDD seria uma evolução do TDD, pois com ele você escreve os cenários de teste antes de desenvolver algum código. Sendo assim, serve para criar testes e integrar regras de negócios com a linguagem de programação. Seu foco é a linguagem e as interações utilizadas no processo de desenvolvimento de software. Permite que analistas e QAs escrevam testes e regras sem saber programar, contribuindo para os desenvolvedores, onde eles focam em como criar um código para atender ao cenário.

Objetivo

Criar uma documentação utilizando os princípios do BDD e integrá-lo a um projeto feito em .Net.

Criação do projeto

Para iniciar, abre-se o Visual Studio (de preferência o 2017) e vá em ‘Arquivo’, ‘Novo’ e ‘Projeto’. Seleciona-se uma Solution em branco:

Com a Solution criada, adiciona-se dois projetos, um Console Application e outro Unit Test.

Desenvolvimento do código

O intuito do projeto é calcular o quanto de horas extras uma pessoa ganhará. No projeto Console Application, cria-se uma classe chamada ‘CalculoHora’, nela ficará todas as regras de negócio do sistema.

Após criação da classe, utiliza-se a mesma na classe principal do projeto, que é ‘Program.cs’:

Implantação dos testes

Para realizar os testes com base no BDD, utiliza-se um framework chamado SpecFlow. Sendo assim, instala-se uma extensão do mesmo no Visual Studio (como o exemplo foi realizado no 2017, utiliza-se o pacote referente). Para isso, vá em ‘Ferramentas’ e ‘Extensões e Atualizações’, selecione a opção ‘Online’ e digite na barra de pesquisa ‘SpecFlow’:

Para instalar completamente, deve-se fechar o Visual Studio (após aparecer uma tarja amarela no canto inferior).

Após isso, necessita-se instalar o pacote SpecFlow no projeto de testes:

Após a instalação do pacote, necessita-se configurar o tipo de projeto de testes no arquivo App.config

Agora, inicia-se a escrita das funcionalidades a serem testadas. Para isso, adiciona-se um novo arquivo .feature:

No arquivo criado, escreve-se o seguinte:

Observação: Ao informar a linguagem do arquivo na primeira linha ‘pt-br’ o mesmo consegue ativar Intelisense e syntax highlighting para a linguagem referente e apresenta as opções existentes.

Terminado de escrever, executa-se o teste: ‘Teste’, ‘Executar’ e ‘Todos os Testes’

Após a execução, será gerado um arquivo .cs e apresentará um erro, e o próprio SpecFlow irá exibir o código que o mesmo espera executar:

Com isso, basta copiar o código e criar um novo item do tipo Steps:

O projeto pode ser encontrado no repositório do GitHub: https://github.com/alex250195/modelo.bdd.

Conclusão

Nota-se que, com pouco conteúdo, gera-se uma documentação útil para o QA, Analistas e, inclusive, para o desenvolvedor, não necessitando, em momento algum, o entendimento de alguma linguagem de programação, o que infere na escrita pura do BDD. Além disso, elimina a utilização de demais arquivos como word e pdf, mantendo tudo dentro de um projeto e, garantindo estar, sempre atualizado.

Referências

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.