Sabemos que testes de aceitação (ou "feature tests", no linguajar do Rspec) são os testes mais próximos da especificação que é projetada entre developers, analistas de negócios, stakeholders etc. No paradigma ágil, esses testes deveriam refletir os critérios de aceite definidos em uma user story (aqui, sem entrar no mérito da pirâmide de testes).
Há uma questão que parece ser recorrente durante o desenvolvimento desses testes. Como organizamos os arquivos correspondentes a esses testes?
Eis algumas dúvidas que podem surgir:
- A localização física e o nome dos arquivos deveriam refletir a organização física ou as capabilities do software? Ex:
# Organizacão física
products_list/list_products_spec.rb
products_list/search_products_spec.rb
products_list/add_product_to_shopping_cart_spec.rb
# Capabilities
products/list_products_spec.rb
search/search_products_spec.rb
checkout/add_product_to_shopping_cart_spec.rb
-
Qual o nível ideal do agrupamento de features (ou cenários dessas features) dentro de um arquivo? Um arquivo deveria agregar uma feature apenas ou um conjunto de features dentro de um tema específico?
-
Qual o melhor padrão para nomear feature? E os cenários dessa feature?
Rspec.feature 'How are you going to describe me?' do
scenario 'I bring some value to your customer, but how would you tell about it here?' do
end
end
A proposta desse workshop/mesa redonda é trocar experiências sobre o assunto e tentar estabelecer um guia interno, principalmente quando não temos ideia por onde começar.