Sha256: c4dd17664084f98b2d3e9e71a1ccb8c865848194c60e03d824373ea221440e40
Contents?: true
Size: 986 Bytes
Versions: 3
Compression:
Stored size: 986 Bytes
Contents
module RR # RR::StubCreator uses RR::StubCreator#method_missing to create # a Scenario that acts like a stub. # # The following example stubs method_name with arg1 and arg2 # returning return_value. # # stub(subject).method_name(arg1, arg2) { return_value } # # The StubCreator also supports a block sytnax. # # stub(subject) do |m| # m.method_name(arg1, arg2) { return_value } # end class StubCreator instance_methods.each { |m| undef_method m unless m =~ /^__/ } def initialize(space, subject) @space = space @subject = subject yield(self) if block_given? end protected def method_missing(method_name, *args, &returns) double = @space.create_double(@subject, method_name) scenario = @space.create_scenario(double) scenario.returns(&returns).any_number_of_times if args.empty? scenario.with_any_args else scenario.with(*args) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rr-0.1.10 | lib/rr/stub_creator.rb |
rr-0.1.11 | lib/rr/stub_creator.rb |
rr-0.1.9 | lib/rr/stub_creator.rb |