Skip to content

Criada a palavra chave Subcenário. - #346

Open
ttperes wants to merge 2 commits into
demoiselle:masterfrom
ttperes:master
Open

ttperes wants to merge 2 commits into
demoiselle:masterfrom
ttperes:master

Conversation

@ttperes

@ttperes ttperes commented May 27, 2015

Copy link
Copy Markdown
Contributor

Quando se deseja que um cenário seja reutilizável, mas ele não tem
necessidade de receber parâmetros, você é forçado a criar um parâmetro
"fake". Com a declaração de Subcenário, agora é possível criar cenários
reutilizáveis sem a necessidade de um parâmetro falso.

Exemplo:
Subcenário: teste de cenário reutilizável sem parâmetros

Quando se deseja que um cenário seja reutilizável, mas ele não tem
necessidade de receber parâmetros, você é forçado a criar um parâmetro
"fake". Com a declaração de Subcenário, agora é possível criar cenários
reutilizáveis sem a necessidade de um parâmetro falso.

Exemplo:
Subcenário: teste de cenário reutilizável sem parâmetros
@rogernobre

Copy link
Copy Markdown
Contributor

@ttperes, com o método "addStoriesReuse", você consegue reutilizar qualquer cenário, basta utilizar o título do cenário como passo do outro cenário que está utilizando ou não, independente de possuir parâmetro.

@rogernobre

Copy link
Copy Markdown
Contributor

@ttperes, vou fazer um pull request no exemplo do google, para mostrar o exemplo que lhe falei:
#347

@ttperes

ttperes commented May 27, 2015

Copy link
Copy Markdown
Contributor Author

Mas aí eu não posso ter a flexibilidade de ter um cenário de reuso sem parâmetro organizado num mesmo .story. A ideia é dar flexibilidade e facilitar a organização para leitura das histórias.

@arildojg

Copy link
Copy Markdown
Contributor

Em relação a permitir reusar um cenário que não tem parâmetros, isso realmente já é possível incluindo a história no qual ele está com o método "addStoriesReuse". Temos reusado cenários assim diversas vezes.
A palavra-chave seria uma nova opção para fazer isso.

Porém, pode ser útil para ajudar a classificar os cenários e posteriormente contabilizar quantos são executados diretamente, e quantos são apenas para reúso.

@rogernobre

Copy link
Copy Markdown
Contributor

@ttperes, ai o problema é outro, seria reutilizar cenários que não serão executados, e sim reutilizados, que não possuem parâmetro e estão no mesmo arquivo .story de uma historia que será executada.

Acho que o filtro atual resolve, mas nada contra criar uma nova palavra-chave.

@ttperes

ttperes commented May 27, 2015

Copy link
Copy Markdown
Contributor Author

O filtro atual não resolve. Você tem que passar um parâmetro fake para ele não executar direto.

@rogernobre

Copy link
Copy Markdown
Contributor

@ttperes, com uso do setStoryOrScenarioFilter não resolveria não?

@rogernobre

Copy link
Copy Markdown
Contributor

Funciona não, se estiver no mesmo arquivo ele tira do arquivo convertido.

@rogernobre

Copy link
Copy Markdown
Contributor

Só funcionaria se o filtro fosse realizado depois do reuso.

@fgsl

fgsl commented Jul 26, 2016

Copy link
Copy Markdown

@ttperes , você poderia ilustrar a aplicação inserindo aqui snippets comparando uma estória implementada da forma como o Dbehave permite hoje e sua alternatica com sua alteração de subcenário, para que fique mais clara a vantagem?

@malaguti

Copy link
Copy Markdown

@ttperes, é por isso que eu não misturo cenários de reuso junto com cenários de execução. Eu sempre tenho arquivos reuse.story, aonde eu escrevo todos os cenários que eu pretendo usar, e arquivos control.story, que é o ponto inicial de execução dos meus testes, e é aonde eu chamo todos os cenários de reuso. Sempre que eu decido reutilizar um cenário que está dentro do control.story, eu passo ele pro reuse.story, e passo a chamá-lo do control.story. isso tem dado muito certo, porque tem me economizado muitas linhas de código, e muitas manutenções.

@juliancesar juliancesar modified the milestones: 1.6.2, Releases Futuras Oct 9, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants