覆盖让对象?
问题描述:
我在我的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。我错过了什么?
答
您的视图可能正在使用创建的用户的持久值。如果您想修改name
属性,您可能还想将其保存到数据库中,以便随后可以在控制器和/或视图中拾取它,这很可能从数据库中提取用户。
尝试在您的测试中将更新后的值保存到数据库。这样
user.update(name: 'John')
+0
这个工作不被使用。我也试图做user.name =“约翰” &&用户.save ... –
+0
尝试'user.name ='John'&& user.save!'(使用“!”) - 也许你的'user'无效,'save'悄悄地返回false – gotva
东西你能告诉我们更多关于用户如何在视图和/或控制器 –