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:

Criando uma Solution em branco

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

Adicionando novos projetos
Projeto para testes
Projeto Startup

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.

Classe contendo regras de negócio do projeto

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

Classe principal do projeto

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’:

Instalando pacote 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:

Instalação do pacote SpecFlow

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

Configuração do tipo de projeto de testes

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

Adicionando novo item
Adicionando arquivo SpecFlow Feature File

No arquivo criado, escreve-se o seguinte:

Escrevendo BDD

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:

Código esperado pelo SpecFlow

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

Criando arquivo SpecFlow Step Definition
Criação da classe 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.