Olá,
Conforme mencionado anteriormente, uma das minhas metas de estudo é estudar o Specflow… tá certo que já existe uma documentação muito bem explicada (que é o que estou estudando inclusive), mas vou tentar explicar desse meu jeito perdido e em português.
O specflow já faz parte da minha rotina profissional, mas mesmo assim preciso aprimorar (MUITO) meu conhecimento sobre o mesmo….e como me ensinaram uma vez “Se você quer ser bom em alguma coisa, nunca deixe de treinar o básico disso”, então vamos lá!
Primeiro ponto, o Specflow é uma ferramenta dentro do visual studio e uma forma de escrever os testes (automatizados) de uma forma que o usuário possa entender , então cria-se um cenário que seja simples para o usuário entender, e simples de ser utilizado na hora de criar o teste, o próprio specflow dá um exemplo bem bacana:
“Feature: Calculadora
Para evitar erros bobos
Como um idiota em matemática
Eu quero que ser informado sobre a soma de dois números
@MinhaTag
Cenário: Somar dois números
Dado que eu adicionei o valor 50 na calculadora
E eu também adicionei o valor 70 na calculadora
Quando eu pressionar adicionar
Então o resultado na tela deve ser 120″

Bem, vou continuar dando os exemplos em português, mas caso você ainda não saiba inglês, aconselho que faça comece a estudar também…ajuda e MUITO na nossa vida!
Depois de criar o cenário simplificado para que o usuário entenda, é hora de escrever de um jeito que o computador entenda, então nós clicamos com o botão direito na feature e pedimos para o programa gerar as definições dos passos( Dado que/quando/então), vamos selecionar os passos, e dar um nome para a classe (nesse caso um “Passos da calculadora”), quando fazemos isso o próprio sistema já cria um esqueleto da classe no projeto, incluindo cada um dos passos selecionados.

Se você reparar bem, o sistema copiou os steps dentro de uma classe, e o “E” do segundo step virou um “Dado que”, o “E” assume o formato do cenário anterior pois é um complemento dele, não sou a pessoa mais indicada para falar de programação, mas sobre o código exbido…funciona mais ou menos assim:
[Dado que (@”eu adicionei o valor (.*) na calculadora”)]
public void DadoQueEuAcesseiACalculadora(int p0)
{
ContextodoCenário.Atualmente.Pendente();
}
- As chaves {} servem para mostrar que dentro delas temos o código referente a linha superior
- As aspas mostram que o texto entre elas é uma string (texto)
- O (.*) mostra que esse espaço não é uma string (Apesar de estar entre aspas) e será preenchido com uma variável diferente
- O int é a variável que se refere ao (.*), avisando para o campo, que ele será preenchido por um número inteiro
Mas não vou me aventurar mais que isso em explicar programação para vocês, apenas para uma contextualizada para aqueles que também estão começando…. De qualquer forma, depois de criar os cenários e códigos você pode fazer a build e rodar o teste, que vai rolar automaticamente na tela para você acompanhar, se o sistema não se portar da forma esperada o teste vai falhar, e avisar em qual passo falhou…. Digamos que se na hora em que ele tentar adicionar o número 50 ele não encontrar o campo para digitar o valor, logo ele vai falhar já que não conseguiu concluir a ação esperada.
Bem, agora sobre o que nós fizemos anteriormente, os steps vão ficar em uma pasta separada dos cenários, mas precisamos das duas implementadas, e pro teste funcionar também precisamos que eles estejam no mesmo projeto em que a aplicação que vamos testar (não adianta pedir pra rodar a aplicação da calculadora se o teste não consegue acessar a aplicação né? rs)
Saindo um pouco da documentação, e indo para algumas explicações gerais:
- “Sou obrigado a usar Given/When/Then/And?”
Sim, são comandos que o specflow entende e permite a criação do código, mas notem que o AND pode ser usado junto com qualquer um dos outros comandos, e que o cenário não precisa ter essa quantidade exatas de linhas, isso é algo que vai variar de acordo com a necessidade do cenário
- “Mas como assim? Eu posso variar o cenário??”
Sim, isso é algo que varia muito de acordo com a necessidade do cliente/projeto, mesmo que a função seja uma só e o teste automatizado vá fazer o mesmo fluxo, é possível criar detalhes diferentes para a situação…. vou dar um exemplo
Cenário – preencher e salvar um formulário
1. Dado que eu abri o fomulário
E preenchi o mesmo com dados válidos
Quando eu salvar o mesmo
Então ele irá ser armazenado no sistema
E será exibida uma mensagem de sucesso
2. Dado que eu abri o fomulário
E preenchi o campo nome
E preenchi o campo sobrenome
E preenchi o campo idade
Quando eu salvar o mesmo
Então ele irá ser armazenado no sistema
E será exibida uma mensagem de sucesso
É um exemplo bem bobo, mas que mostra que o mesmo teste pode ser descrito de formas diferentes 🙂
Certo, por hoje isso é o bastante né pessoal? Vou continuar com esses posts ao longo do tempo (escrever os posts é uma ótima forma de estudar rs) e espero que possa vir a ajudar mais gente 🙂
Abraços, e até logo!
Ola! Forgive me writing in English, as my Portuguese is terrible. I just wanted to thank you for your work and making a tutorial that is accessible to the Portuguese-speaking SpecFlow community. I will add your article to the list of resources on the SpecFlow website.
Thank you too for your kind words about the SpecFlow Getting Started Tutorial.
CurtirCurtir
Hello Stephen, no problems for writing in english 🙂
And I can make those posts, just because there is the material in english, so I’m the one who have to say thanks 🙂
It’s a honor to have my post added on the list of resources! I will do my best to translate the Getting Started Tutorial!
Thanks again
CurtirCurtir
Ola Diego, estou testando a ferramenta SoapUi para automatizar testes nos serviços que consumo, porem ao criar o novo projeto o e informar o caminho do serviço os métodos retornados não apresentam o arquivo Request, você já passou por essa situação? Consegue me dar uma ajuda de como resolver para criar meus casos de teste para os métodos, fico no aguardo caso possa me dar uma ajuda serei muito grato.
CurtirCurtir
Oi Nilton, infelizmente não utilizo o SoapUi, para ajudar.
Deixei o comentário em aberto para ver se alguém pode ajudar, mas de qualquer forma, dá uma olhada no Agile Testers, tenho certeza que alguém na comunidade pode te ajudar 🙂
http://agiletesters.com.br/search?term=SoapUi%20&in=titlesposts
Desculpa não poder ajudar com mais
CurtirCurtir
Nilton, tudo bem? Posta aqui o que foi exibido para você. Pode ser uma simples configuração.
Abs
CurtirCurtir