2016-05-31 3 views
0

現在、Rubyのテストケースで作業中ですが、渡していたパラメータがコントローラに渡されていないことを認識しています。パラメータを渡していないコントローラをテストしています

これは私のコントローラのための私のテストケースである

test "should get addUser" do 
    user_info = User.create_user("TEST1","TEST1") 
    assert_equal(user_info,true,"Assert Failed") 

User.create_user結果はまた、2つのアサーションを示しているが、私は唯一のアサートを宣言

def self.create_user(username,password) 
    if username == "" || password == "" and username == nil || password == nil 
     register = User.new({:username => username,:password => password}) 
    end 
    return register.save 
end 

含ま。

+1

検証するクラスアクションを作成するのではなく、ユーザーモデルで検証を使用する必要があります。バリデーションを使用すると、Userオブジェクトは保存されるたびにチェックされ、簡単に開始/救済でき、さらに簡単な操作が可能です。 – ArtOfCode

答えて

0

問題はあなたの状態にある:

if username && password && !username.empty? && !password.empty? 

unless ['', nil].include?(username) || ['', nil].include?(password) 

ウィルの両方の仕事。複数のスペース場合

最後に、Railsのでは、あなたはblank?を使用することができます(一般的にユーザー名とパスワードのための良いアイデアである)にも有効な値ではありません。

unless username.blank? || password.blank? 

-

if username == "" || password == "" and username == nil || password == nil 

(ユーザー名またはパスワードが空の場合)、(ユーザー名またはパスワードがnilの場合)のみが渡されます。

{ password: '', username: nil } 
{ password: nil, username: '' } 

2つのアサーションに関して、より多くのコードが必要になります(ここでは少なくともテストの最後に欠けてしまいます)

+0

Railsでは、 'blank?'関数は、nilか空であるかをテストする条件を単純化/クリーンアップします。 –

+0

trueですが、 '' '.blank?'も真です。私の答えを編集する – floum

関連する問題