🍣
スペシフィケーションパターンのこと始め
概要
スペシフィケーションパターンについて実例を記載する。
題材
3歳以上かつ1000円以上の所持金でシャボン玉を購入出来るか判定する論理をスペシフィケーションパターンで実現する。
実例
# frozen_string_literal: true
class Person
attr_reader :year, :money
def initialize(year, money)
@year = year
@money = money
end
end
class PurchaseSoapBubbleSpecification
def satisfied_by?(person)
if person.year >= 3 && person.money >= 1000
true
else
false
end
end
end
person1 = Person.new(3, 1000)
person2 = Person.new(3, 999)
specification = PurchaseSoapBubbleSpecification.new
pp specification.satisfied_by?(person1) #=> true
pp specification.satisfied_by?(person2) #=> false
実行結果は、次の通りです。
russ@penguin:~$ ruby specification.rb
true
false
Discussion