Closed arildojg closed 9 years ago
Para ilustrar o problema, a seguir estão alguns passos que gostaríamos de reutilizar em mais de um projeto:
Segue também exemplos de utilização dos mesmos, substituindo as variaveis com alguns valores:
E NÃO será exibido "Aviso: já existe um "
Quando informo um número randomico com prefixo "1" no campo "Chave de Acesso"
!-- extrair uma parte específica de um texto e guardar em variável para uso futuro Quando uso a E.R. "[0-9]{0,11}/[0-9]{4}" e obtenho "numero_do_novo_DLe" do campo "Mensagem Sucesso" Quando uso a E.R. ":\s[0-9]+." e obtenho "finalMsgAlerta" do campo "Mensagem Alerta"
!-- esperar aparecimento de msg que tem parte fixa e parte dinâmica Então será exibido "DL-e [<numero_do_novo_DLe>] criado com sucesso." (parâmetros substituidos pelos seus respectivos valores) Então será exibido "Solicitação do DL-e <numero_do_novo_DLe> realizada com sucesso." (parâmetros substituidos pelos seus respectivos valores)
!-- Ver o valor atual de uma variavel em tempo de execução: util para debug Dado que imprimo no console o valor de "numero_do_novo_DLe"
Quando defino a variavel "data_hora_criacao_dle" com valor "01/03/2012 01:00:01"
!-- Definir uma data/hora retrocedendo ou avançando a partir de uma data/hora usada como base Quando informo o resultado da expressão "DATA_ATUAL+2d6H30m" no campo "Data/Hora Inicial" no formato "dd/MM/yyyy HH:mm" Quando informo o resultado da expressão "data_hora_criacao_dle+20d" no campo "Data/Hora Registro" no formato "dd/MM/yyyy HH:mm"
@arildojg , estamos avaliando subir para o framework as seguintes frases:
Você poderia fazer um pull request contendo o código destes passos?
@arildojg , foram adicionadas algumas novas frases no commit https://github.com/demoiselle/behave/commit/ed81da322a33c668f2ce7a7362464b5e0a182147. Obrigado pela contribuição.
@arildojg , já se passaram quase 7 meses desde que você abriu esta issue, está dúvida ainda continua? Você já tem algumas pistas de como resolver? Alguma delas já foi colocada em prática?
Obrigado.
Dá ultima vez que conversamos numa áudio, a idéia seria tentar colocar tais passos em um projeto separado, gerar um .jar e tentar usá-lo/incluí-lo nos projetos como uma dependência via pom. Posso fazer uma prova de conceito quarta, qdo voltar de férias. Fazem idéia se a princípio o DBehave consegue pegar passos dentro de um .jar incluído via dependência?
Em 1 de setembro de 2014 17:53, Julian Cesar notifications@github.com escreveu:
@arildojg https://github.com/arildojg , já se passaram quase 7 meses desde que você abriu esta issue, está dúvida ainda continua? Você já tem algumas pistas de como resolver? Alguma delas já foi colocada em prática?
Obrigado.
— Reply to this email directly or view it on GitHub https://github.com/demoiselle/behave/issues/194#issuecomment-54091110.
Arildo
arildo.gueno@gmail.com
arildo_gueno@yahoo.com.br
@arildojg , a principio vai funcionar sim.
@juliancesar, Você comentou isso: "NÃO será exibido "$text" - Já foi criado, esta atendendo?" Não estou encontrando esta frase, utilizo a versão 1.4.1.
Foi retirada? Grato.
ThiagoNicolielo, este passo é antigo e está dentro de um projeto que criamos internamente apenas para compartilhar passos que poderiam ser reutilizados. Esse projeto segue a idéia comentada nas msgs anteriores dessa issue. Contém passos que são genéricos mas talvez não a ponto de serem incorporados no DBehave.
É um grande candidato a sumir, pois essa abordagem de verificar texto no html todo acaba gerando problemas. O ideal seria ter uma frase para garantir que o texto não é exibido em um elemento específico, previamente mapeado. Talvez a frase a seguir presente na CommonSteps possa ser usada como base: "ser\u00E1 exibido na \"$elementName\" o valor \"$text\"".
Criamos um projeto onde colocamos classes contendo os steps reutilizáveis. A partir desse projeto criamos um componente e referenciamos ele nos demais projetos via maven/pom.xml. Os classes com steps reutilizaveis que estão nesse projeto extendem a CommonSteps. Nos projetos onde queremos fazer reuso de passos, fazemos as classes de steps específicos do projeto extenderem essas classes de steps reutilizaveis.
Eu faço uma story xxxReuse.story, aonde eu coloco todos os cenários, sem exceção, e faço uma story xxxControl, que vai ser chanada pela classe de teste, e que vai chamar todos os cenários gravados no xxxReuse. Cenários como navegar até chegar em uma tela específica, e cenários aonde eu poso passar as informações de gravação e retorno esperado, eu chamo quantas vezes precisar. Usando parâmetros, eu posso usar o mesmo cenário diversas vezes para executar diversos testes diferentes.
Eu escrevi sobre o assunto postado acima no você.serpro, mas não consegui que o editor respeitasse a identação, e as quebras de linha. Eu estou disponibilizando um DOCX com exemplos dessa prática. Abordagem de reuso de cenários.docx
Boa tarde
A medida que estamos utilizando o DBehave nos projetos é comum identificar passos de um projeto que podem ser reaproveitados em outros.
Talvez alguns desses passos sejam genéricos a ponto de serem incorporados ao framework após análise da SUPST, mas nem sempre isso vai ocorrer. Sendo assim, haverá passos que:
não são tão genéricos a ponto de serem incorporados ao framework DBehave.
Gostaria de receber feedback dos colegas para saber quais práticas estão sendo adotadas para promover o reúso desses passos. Especialmente no que se refere a organização dos mesmos dentro do ALM (área de projeto/stream/componente) e forma de reusá-los nos projeto Maven criados a partir do arquétipo do DBehave para testes com JBehave.