2014-02-26 111 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