2016-12-05 5 views
0

capybaraを使用して、application.jsファイルが非同期にロードされていることをテストします。私は、次のコード application.jsが非同期で本番環境に読み込まれることをテストする方法

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

を試してみましたが、これは動作しません、本番モードでのテストを実行しているので、ダイジェストが追加されるので、ファイルの名前は application-ae5fag34.jsのようなものです。どのようにこれを収容するのですか?

+0

dupではなく、http://stackoverflow.com/questions/6874705/is-it-possible-to-use-a-css-wildcard-in-the-middle-of-an-attribute-selectorうまくいくはずです。 –

答えて

2

セレクタscript[src^="/assets/application-"][src$=".js"][async="async"]が有効です。しかし、これは最初に必要ではありません。実動サーバーでテストを実行することは、まさに良い考えではありません。

バグを検出するには、テストをローカルまたはCIサーバーで実行する必要があります。多くのテスト指向の宝石は生産のためのものではなく、セキュリティホールにつながる可能性があります。

+0

これは意味があります、私は受け入れる前にチャンスがあるときにテストします。私は自分の質問を編集して、自分の開発サーバーでテストを実行することを生産モードで実行していることを示しました。 – Obromios

関連する問題