4

引数が指定されていない場合に、引数を取るメソッドがデフォルト値を使用することをテストするにはどうすればよいですか?

# this method shouldn't error out
# if `Post.page_results` without a parameter
class Post
  def self.page_results(page=1)
    page_size = 10
    start = (page - 1) * page_size
    finish = start + page_size
    return Page.all[start..finish]
  end
end

引数なしで呼び出された場合にpage等しいrspecをチェックインするにはどうすればよいですか?1page_results

4

3 に答える 3

-1
describe Post do
  describe '#page_results' do
    let(:post) { create :post }

    context 'without arguments' do
      it { post.page_results.should eq 1 }
    end
  end
end

create :postステートメントは、 FactoryGirl でそれを行う方法です。ただし、もちろん、モデルをモックまたはスタブ化することもできます。

アップデート

describe Post do
  describe '#page_results' do

    context 'without arguments' do
      it { Post.page_results.should eq 1 }
    end

    context 'with arguments' do
      it { Post.page_results('foo').should eq 'bar' }
    end
  end
end
于 2013-05-31T08:40:12.033 に答える