2014-02-26 113 views
0

我在我的RSpec的以下內容:覆蓋讓對象?

context 'being an admin' do 
    let(:user) { create(:user) } 

    scenario '...' do 
    end 

    scenario '...' do 
    end 
end 

我如何可以覆蓋特定場景下的用戶的方法?假設我想要3號場景,user.name會響應新的內容。

我已經試過這樣:

scenario '...' do 
user.name = 'John' 
end 

但認爲它一直顯示默認user.name。我錯過了什麼?

+0

東西你能告訴我們更多關於用戶如何在視圖和/或控制器 –

回答

0

您的視圖可能正在使用創建的用戶的持久值。如果您想修改name屬性,您可能還想將其保存到數據庫中,以便隨後可以在控制器和/或視圖中拾取它,這很可能從數據庫中提取用戶。

嘗試在您的測試中將更新後的值保存到數據庫。這樣

user.update(name: 'John') 
+0

這個工作不被使用。我也試圖做user.name =「約翰」 &&用戶.save ... –

+0

嘗試'user.name ='John'&& user.save!'(使用「!」) - 也許你的'user'無效,'save'悄悄地返回false – gotva