2012-02-22 6 views
0

すべてのビュー変数がコントローラ変数を指していることを確認するためのクイック(コマンドOR宝石ORテストフレームワーク)がありますか?コントローラ変数をビュー変数でクロスチェックする簡単な方法は?

私は、View変数のスペルが間違っているため、コントローラに呼び出されているデータを表示していないRailsアプリケーションで作業しました。たとえば、@person.nameはビューに表示されません。

Controller 
|- @person.name = 'first' 
|- @person.email = '[email protected]' 
|- @person.cell = '123-456-7890' 

View 
|- display @person.nameE # => NoMethodError 
|- display @person.email # => [email protected] 
|- dispaly @person.cell  # => 123-456-7890 

これは間違って指されるので、ビューに表示されない@person.nameになります。

答えて

1

実際には、@person.nameEはnilを返しません。NoMethodErrorになります。あなたがそのビューをロードするテストをしている限り、あなたがそれを実行すると、それが爆発するのを見るでしょう。

+0

どのようなテストフレームワークでこれを達成できますか? – westonplatter

+0

ほとんど何もしません!テストフレームワークでゴールドスタンダードを探しているなら、私はTest :: Unitで始めるでしょう。 [Ruby on Railsテストガイド](http://guides.rubyonrails.org/testing.html)には、Railsアプリケーションのテスト方法について説明しています。 – Veraticus

+0

Testing Guideを見て、特定のHTMLオブジェクトの存在をテストするコードがありました。これはあなたがテストしたいものが分かっていれば素晴らしいですが、ビューのHTMLオブジェクトが変わると動的に拡張することでこれを拡張できますか? – westonplatter

0

私はそれがあなたと一緒に暮らさなければならないだけの痛みだと信じています。これは、インタープリター言語を使用しているときに発生する典型的な問題です。あなたができるのは、それを防ぐテストを書くことだけです。

0

これを確認したい場合は、ビュー仕様/テストを作成します。

0

ビュー内でアクセスされている変数やメソッドがコントローラに正しく設定されていることを確認する方法はありません。他のポスターは正しいです - NoMethodErrorが発生し、いくつかのテストを書くのがベストプラクティスです。

+0

しかし、テストを動的に更新することはできますか? [Rails Testing Guide 4.6](http://guides.rubyonrails.org/testing.html)で見たことから、テストは静的に定義されていました。 – westonplatter

関連する問題