2017-07-13 2 views
0

je luttais avec savoir comment trouver et sélectionner de la bibliothèque réagira-sélection avec Capybara jusqu'à ce que je suis tombé sur ceci: https://github.com/JedWatson/react-select/issues/832Capybara méthodes personnalisées, où devraient aller ces méthodes?

super utile et il fonctionne, quelqu'un a mentionné une bonne façon de le faire qui fonctionne et je pense qu'il serait utile d'inclure cette définition de méthode.

Cependant dans les rails où quelque chose comme ça irait? Idéalement, vous ne voudriez pas qu'il soit défini JUSTE dans ce fichier de test. Quelque chose comme le fichier rails_helper ou spec_helper serait un endroit approprié? ou quelqu'un devrait-il créer un fichier test_helper distinct pour ces fonctions d'aide? (En ce moment je sais fichier test_helper comme im mise en place des pilotes dans rails_helper

Im pas vraiment sûr « automatisation sage » quelle est la meilleure convention est?

Répondre

1

Lorsque vous utilisez RSpec votre rails_helper.rb a généralement une ligne

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 

Ce module charge tous les fichiers rb dans le répertoire spec/support lors du démarrage. Pour ajouter vos méthodes, vous devez ajouter un nouveau fichier, quelque chose comme spec/support/capybara_react_helper.rb et y mettre

module CapybaraReactHelepr 
    def a_helper_method(...) 
    ... 
    end 

    def another_helper(...) 
    ... 
    end 
end 

Ensuite, dans votre configuration RSpec (habituellement plus tard dans votre rails_helper.rb) vous pouvez inclure ces méthodes dans les tests de fonction

RSpec.configure do |config| 
    ... 
    config.include CapybaraReactHelper, type: :feature 
    ... 
end 
+0

Que signifie exactement le 'type: feature' vraiment faire? Est-ce que je suis habitué à voir cela sur les tests ou est-ce que cela inclut seulement ce module sur des tests basés sur des "caractéristiques"? – msmith1114

+1

@ msmith1114 Lors de la définition d'un test définissant le type de test (modèle, vue, contrôleur, demande, fonctionnalité, etc.) ou vous pouvez le définir automatiquement en fonction du répertoire dans lequel le test est défini. 'déclaration indique quand inclure ce module - dans ce cas, Capybaras DSL est généralement utilisé uniquement dans les spécifications d'entités, il est donc logique d'inclure les méthodes d'assistance dans le même type de test. –