module Sus::It
def self.build(parent, description = nil, unique: true, &block)
def self.build(parent, description = nil, unique: true, &block) base = Class.new(parent) base.extend(It) base.description = description base.identity = Identity.nested(parent.identity, base.description, unique: unique) base.set_temporary_name("#{self}[#{description}]") if block_given? base.define_method(:call, &block) end return base end
def call(assertions)
def call(assertions) assertions.nested(self, identity: self.identity, isolated: true, measure: true) do |assertions| instance = self.new(assertions) instance.around do handle_skip(instance, assertions) end end end
def handle_skip(instance, assertions)
def handle_skip(instance, assertions) catch(:skip) do return instance.call end end
def leaf?
def leaf? true end
def print(output)
def print(output) self.superclass.print(output) output.write(" it ", :it, self.description, :reset, " ", :identity, self.identity.to_s, :reset) end
def to_s
def to_s "it #{description}" end