首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RubyTutorial 10.5.2 Rspec测试micropost分页

RubyTutorial 10.5.2 Rspec测试micropost分页
EN

Stack Overflow用户
提问于 2012-12-11 06:04:10
回答 2查看 1.1K关注 0票数 3

当我翻阅Michael Hartl写的“学习Rails”这本书时,我被其中一个练习难住了。Learn Rails by Example by Michael Hartl

“为micropost分页添加测试”

我的错误测试,放在'describe‘for signed in users’do‘中,如下所示:

代码语言:javascript
运行
复制
describe "pagination" do
    before(:all) do 
      30.times { FactoryGirl.create(:micropost, user: user) }
    end
    after(:all) { user.feed.delete_all }
    page.should have_selector('div.pagination') }

    it "should list each micropost" do
      user.feed.paginate(page: 1).each do |user|
        page.should have_selector('li', text: user.name)
      end
    end
  end 

无论我执行的是page.should还是page.should_not,测试都显示为通过。

任何“提示/帮助”都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-12 01:27:47

在浏览一些回购时,我找到了问题的答案--在创建了额外的微帖子之后,我需要再次访问root_path。

代码语言:javascript
运行
复制
describe "pagination" do
  it "should paginate the feed" do
    30.times { FactoryGirl.create(:micropost, user: user, content: "Consectetur adipiscing elit") }
    visit root_path
    page.should have_selector("div.pagination")
  end
end
票数 5
EN

Stack Overflow用户

发布于 2013-09-29 17:43:09

我认为您应该放置一个毕竟过滤器来清理大量插入的微帖子;由于您的实现(除非您在测试代码的另一部分中执行,否则此处未显示),它不会删除创建的微帖子。

这可以通过以下代码轻松完成:

代码语言:javascript
运行
复制
describe "pagination" do
  after(:all) { user.microposts.delete_all unless user.microposts.nil? }
  it "should paginate the feed" do
     40.times { FactoryGirl.create(:micropost, user: user) }
     visit root_path
     page.should have_selector('div.pagination')
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13810066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档