作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试测试方法调用链中的方法之一是否获得特定参数。例如,在下面的代码中,MyModel 必须接收方法 offset
的参数 0 .不幸的是,下面的代码不起作用。似乎不可能混合 should_receive 和 stub_chain。我怎么能解决这个问题?我正在使用 RSpec 2。
MyModel.should_receive(:offset).with(0).stub_chain(:tag_counts, :offset, :limit, :order).and_return([]) # does not work!
tags = taggable.tag_counts.offset(page-1).limit(per_page).where(*where_clause).order("count DESC")
最佳答案
这是我现在在我的一个规范中所做的一个例子。这有点不方便(因为有很多行),但它有效:
SearchPaginationModel.stub(:tag_counts) { SearchPaginationModel }
SearchPaginationModel.should_receive(:offset).with(0) { SearchPaginationModel }
SearchPaginationModel.stub_chain(:limit, :where, :order) { [] }
SearchPaginationModel.stub_chain(:tag_counts, :where, :count).and_return(1)
SearchPaginationModel.search_tags(:page => "1")
SearchPaginationModel.tag_counts.offset(0).limit(X).where(X).order(X)
中进行测试真的
offset
0 被设置。
关于ruby-on-rails - stub_chain 和 should_receive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262181/
我正在尝试测试方法调用链中的方法之一是否获得特定参数。例如,在下面的代码中,MyModel 必须接收方法 offset 的参数 0 .不幸的是,下面的代码不起作用。似乎不可能混合 should_rec
当我使用 stub_chain 运行测试时,我会收到弃用警告。 describe "stubbing a chain of methods" do subject { Object.new }
我使用 Rails 3.0.4 和 RSpec 2.5。例如,在我的 Controller 中,我大量使用命名范围 @collection = GuestbookEntry.nonreplies.by
我是一名优秀的程序员,十分优秀!