6

コントローラー アクションで適切な RJS が生成されるようにする最善の方法は何ですか?

たとえば、次のように div が強調表示されるようにします。

def new
  render :update do |page|
    page.visual_effect :highlight, :some_div
  end
end

Rant: これは、RSpec を 1 年間使用した後、私が RSpec に飽きる理由の 1 つになりつつあります。これは簡単な質問のはずですが、誰も答えを持っていないようです。

RSpec は動作を指定するものであり、ここでやろうとしていることは単なる「テスト コード」であると繰り返し言われてきました。:som​​e_div の強調表示は、私が知る限りの動作です。

4

2 に答える 2

4

応答の出力用にコントローラーテストをセットアップして、JavaScriptのフォーマットを探すことはできませんか?

  xhr :get, :new
  response.should be_success
  response.should have_text("... test for JS response ...")

また、おそらくSeleniumを使用して、クライアントでこれをより完全にテストします。コントローラーテストは、より「健全性」チェックです。

于 2009-01-19T23:02:30.373 に答える
4

rspec は、assert_select_rjs をラップする have_rjs ヘルパーを提供します。ここにいくつかの詳細があります:

http://jonathan.tron.name/2007/11/24/rspec-and-inline-rjs

残念ながら assert_select_rjs は以下のみをカバーします:

:replace, :replace_html, :show, :hide, :toggle, :remove and :insert_html 

したがって、これは質問の visual_effect を処理しません。ただし、ARTS プラグインは視覚効果をサポートしています。

http://github.com/timocratic/arts/tree/master

それを rspecs new 'spec/interop/test' と組み合わせることができるはずです。

http://blog.davidchelimsky.net/2009/2/2/rspec-works-with-test-unit

于 2009-02-17T14:32:42.760 に答える