Это пример того, что я сейчас делаю в одной из своих спецификаций.Это немного неудобно (из-за множества строк), но работает:
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 установлены.