同値分割法
どの値を選んでも結果が同じとなる範囲内からは1つの値を選択すればよい
例
a,b,cの3つの引数すべてが正の数であればtrueを返す関数があるとする
code:ruby
def all_plus?(a, b, c)
a > 0 && b > 0 && c > 0
end
全ての数を与えるのは不可能なので「1以上の数」か「0以下の数」というグループに分けてピックアップすればよい
また、テストケースを作成する際には有効となるケースと、各条件を1つずつ変更したケースを作ると効果的
code:ruby
it do
expect(all_plus?(1, 1, 1)).to eq true
expect(all_plus?(0, 1, 1)).to eq false
expect(all_plus?(1, 0, 1)).to eq false
expect(all_plus?(1, 1, 0)).to eq false
end