0

私はしばらく探し回っていましたが、RoRでのテスト構造についての明確な説明が見つかりませんでした。(私はマイケル・ハートルの本で学んでいます)。

  1. テストにrspecを使用しているので、「test」フォルダーをもう保持する必要がありますか?
  2. 「spec」フォルダ構造は、特定のテスト目的に厳密に割り当てられていますか?
  3. テストスクリプトを「生成」するとき、スクリプトファイルを作成する以外のことをしますか?(つまり、手作業で作成できますか?)

2番目の質問はこのエラーから来ています:

undefined method `visit' for #<RSpec::Core::ExampleGroup: ...

これは、私の非常に単純なテストファイルが/ spec / requestsにない(ただし/ spec / viewsにある)とすぐに発生します。

require 'spec_helper'

describe "Home page" do

  subject { page }

###1
  describe "title" do
    before { visit root_path }

    it { should have_selector('h1',    text: 'Welcome') }
    it { should have_selector('title', text: 'Home') }

  end
end
4

3 に答える 3

2

1)いいえ、フォルダは必要ありませんtestspecTest :: Unitを使用している場合を除き、のみ。

2)お好きなようにご注文いただけspecます。一般的に推奨される形式は

spec/
  controllers/
  views/      
  models/ 
  lib/ #Only if you have stuff in lib you need to test    
  spec_helper.rb

、、などの名前spec/controllers/items_controller_spec.rbspec/models/item_spec.rb

3)どういう意味かわかりません。RSpecの場合、Rubyコードの特定の部分をテストするためにその構文を使用するファイルを作成する必要があります。スクリプトは作成されません-作成します。

についての最後の質問についてvisit

カピバラの方法を使おうとしているようです( visit)。Capybaraは、RSpecではなく、ブラウザーでサイトにアクセスします。

于 2013-03-06T22:14:37.560 に答える
1
  1. いいえ
  2. 下記参照
  3. いいえ、ファイルを作成するだけです

Capybara受け入れテストを実行するために使用する必要がある特定のフォルダー構造が1つあります。これらは「訪問」を含むテストです

カピバラ1.0

spec/requests

カピバラ2.0

spec/features
于 2013-03-06T22:21:20.753 に答える
1
  1. いいえ、私の理解では、testフォルダーは通常Test::Unitのものに使用されます。削除または保持できます。それを残すことを傷つけません。
  2. 彼らがあなたにそのようなものを整理して欲しいというかなり具体的な方法があります。たとえば、を持っている場合app/models/user.rb、スペックはにあるはずですspec/models/user_spec.rb
  3. テストスクリプトを作成する以外に、それが何をするのかはわかりません。完全に手作業で作成できますが、私はいつもそうしています。
于 2013-03-06T22:16:33.087 に答える