2012-06-19 13 views
0

下面是測試通過的同異:什麼是這兩個測試(一個失敗,一個通行證)

test "should create user" do 
     assert_difference('User.count') do 
     post :create, user: { name: "John Doe", 
           email: "[email protected]", 
           password: "foobar3", 
           password_confirmation: "foobar3" } 
end 

這裏是失敗的測試:

def setup 
    @user = User.new(name: "John Doe", 
       email: "[email protected]", 
       password: "foobar3", 
       password_confirmation: "foobar3") 
end 


test "should create user" do 
     assert_difference('User.count') do 
     post :create, user: @user 
end 

爲什麼第二次測試失敗?以及如何使它使用@user變量?

回答

1

使用.attributes方法獲取用戶屬性的散列值,因此可以將這些散列值代替實際的用戶對象。

test "should create user" do 
    assert_difference('User.count') do 
    post :create, user: @user.attributes 
end 
相關問題