各位大大,测试是选择 rails Tutorial.
先上测试代码
describe "edit" do
let(:user) { FactoryGirl.create(:user) }
before { visit edit_user_path(user) }
describe "page" do
it { should have_content("Update your profile") }
it { should have_title("Edit user") }
it { should have_link('change', href: 'http://gravatar.com/emails') }
end
在上 controller
def edit
@user = User.find(params[:id])
end
测试是通过的。只是我的疑惑是这样的。测试中的let(:user) { FactoryGirl.create(:user) }
创建了一个 user 对象 (我是觉得它没有 id 的)。这样调用visit edit_user_path(user)
的话,显然不可能生成..user/:id/edit
这样的 url(因为 user 中我觉得没有 id)
但是:事实是测试通过的,所以想必FactoryGirl.create(:user)
是生成了 id。熟悉 FactoryGirl 的给解答一下吧,先谢谢了。
PS: 看到 FactoryGirl,我就想起早年有个段子。“who create the table girl,and I should wirte the sql like "insert into girl ...."”