3

mocha gemを使用して次のようなメソッドをテストする最良の方法は何ですか?

def can_create?(user)
  opened? && (owner?(user) || member?(user))
end

「AND」条件と「OR」条件をテストするベスト プラクティスはありますか? すべての可能性をカバーするために多くのテストを作成する必要がありますか、それともすべてをカバーするオプションが必要ですか?


Rails 4 + テストユニットを使用しています。

たとえば、&&のみのテストがある場合:

def can_update?(user)
  opened? && owner?(user)
end

私はテストしています:

group = Group.new
user  = User.new
group.expects(:opened?).returns(true)
group.expects(:owner?).returns(true)
assert group.can_update?(user)

問題は、「OR」条件がある場合です。最初のメソッド ( can_create? ) では、それはできません。

group = Group.new
user  = User.new
group.expects(:opened?).returns(true)
group.expects(:owner?).returns(true)
group.expects(:member?).returns(true)
assert group.can_create?(user)

( owner? および member? メソッドは true/false になる可能性があるため)。

4

1 に答える 1