2016-05-09 6 views
0

In einem rspec Feature-Test, möchte ich auf das Vorhandensein des folgenden Codes-Test für async Eigenschaft in Script-Tag

<script src="/assets/application.js" async="async"></script> 

testen, ob ich

page.should have_css 'script', src: "/assets/application.js", async: 'async' 

versuche ich eine Fehlermeldung erhalten, dass :src, :async sind ungültige Schlüssel. Ich möchte den Test verwenden, um sicherzustellen, dass auf Heroku die application.js Datei asynchron geladen wird.

Wie teste ich das?

Antwort

1

Es gibt ein paar Probleme: Erstens findet Capybara standardmäßig keine Elemente, die nicht sichtbar sind (dazu gehören auch Skript-Tags). Zweitens: src und: async sind keine Dinge, über die Capybara etwas weiß. Die Lösung hierfür besteht darin, die Anforderungen für src und async in den css-Selektor aufzunehmen und die Optionen visible: false zu übergeben, damit Capybara nicht sichtbare Elemente findet.

page.should have_css('script[async="async"][src="/assets/application.js"]', visible: false) 
+0

Danke, das funktioniert, und die '' 'sichtbar: false''' Tipp wird in vielen anderen Orten nützlich sein. – Obromios