2016-06-30 4 views
0

Rspecが生成するファイルrails_helper.rbに関する質問があります。私はそれがすべて本当にうまくいっていますが、私が得ないものがあります。私はそのファイル(サポートディレクトリ、データベースクリーナー..)に何が入っているのか知っています。そして、私はそのファイルにフィーチャー、モデル、コントローラーのテストが必要な人を少なくとも数百人も見てきました。 - 何も起こりませんrails_helper.rbファイル(必要がなくてもテストに合格)

require 'rails_helper' 

describe User do 

    it "is valid with valid attributes" do 
    user = build(:user) 
    expect(user).to be_valid 
    end 

    it "is invalid when username is blank" do 
    user = build(:user, username: "") 
    expect(user).to_not be_valid 
    end 
                                                                                              it "is invalid when username is too long" do 
    user = build(:user, username: "a" * 21) 
    expect(user).to_not be_valid 
    end 

    it "is invalid when username is too short" do 
    user = build(:user, username: "a" * 3) 
    expect(user).to_not be_valid 
    end 
end 

そして私はちょうど「require_helper.rb」を削除した場合:

は、私は私のアプリを持っている。この例を考えてみましょうか?テストはまだ通りますか?そして、私はそのラインを削除して、まだ通過している20のテストを受けました(私は、工場の女の子なしでActiveRecordモデルを直接使用しようとしましたが、それでもパスします)!

イム使用して:RSpecのfactory_girl、データベース・クリーナ、3およびレール

4.2は - 私は行方不明何かはありますか?何かの誤りはないはずですか?

TNX、 トム

答えて

0

プロジェクトがルートに.rspecファイルを持っていますか?これは、RSpecヘルパーを自動的に要求するためによく使用されます。

+0

はい.rspecファイルがありますが、spec_helper.rbのみが含まれています。 rails_helper.rbはレールスタック全体をロードするはずですが、spec_helper.rbはすべての非レールクラス(少なくとも私が読んだもの)です。 –

+1

あなたのプロジェクトでSpringを使用していますか? rspecコマンドの前に 'DISABLE_SPRING = 1'をつけると、同じ動作が見えますか? –

+0

はい、あなたが正しいです、それは春のためです(申し訳ありませんが、私はそれを使用することを忘れてしまった)。それを無効にして、レールが一定のユーザーを解決できないと訴えています。 Tnx Andy :) –

関連する問題