Hello Aaron, Thanks... Late night reading might causes it.. :-) Thanks for your help.
On Wednesday, July 2, 2014 2:46:25 AM UTC+5:30, Aaron Kromer wrote: > > You have a typo in your Thing code: > > def self.count=(val) > # Typo is +=, use just = > @count += val > end > > That should just be @count = val not +=. This is causing count to > increase in size each time by 1 plus itself. > > > On Tue, Jul 1, 2014 at 4:25 PM, Surya <[email protected] <javascript:>> > wrote: > >> I think subject() defines the value which will be returned by the subject >> method: >> https://www.relishapp.com/rspec/rspec-core/v/2-6/docs/subject/explicit-subject >> >> context "using subject!" do >> subject { Thing.new } >> >> it "returns 1" do >> expect(subject.class.count).to eq(1) >> end >> end >> >> >> >> On Wed, Jul 2, 2014 at 1:10 AM, Arup Rakshit <[email protected] >> <javascript:>> wrote: >> >>> ####### >>> test.rb >>> ####### >>> >>> #!/usr/bin/env ruby >>> >>> class Thing >>> def self.count >>> @count ||= 0 >>> end >>> >>> def self.count=(val) >>> @count += val >>> end >>> >>> def self.reset_count >>> @count = 0 >>> end >>> >>> def initialize >>> self.class.count += 1 >>> end >>> end >>> >>> ########### >>> test_spec.rb >>> ########### >>> >>> require_relative "../test.rb" >>> >>> describe Thing do >>> after(:example) do >>> puts "called" >>> #Thing.reset_count >>> end >>> >>> context "using subject!" do >>> subject!(:thing) { Thing.new } >>> >>> it "returns 1" do >>> expect(Thing.count).to eq(1) >>> end >>> >>> it "returns 2" do >>> expect(Thing.count).to eq(2) >>> end >>> end >>> end >>> >>> If I run the test :- >>> >>> arup@linux-wzza:~/Ruby> rspec spec/test_spec.rb >>> .F >>> >>> Failures: >>> >>> 1) Thing using subject! returns memoized version on first invocation >>> Failure/Error: expect(Thing.count).to eq(1) >>> >>> expected: 1 >>> got: 3 >>> >>> (compared using ==) >>> # ./spec/test_spec.rb:13:in `block (3 levels) in <top (required)>' >>> >>> Finished in 0.00173 seconds (files took 0.13718 seconds to load) >>> 2 examples, 1 failure >>> >>> Failed examples: >>> >>> rspec ./spec/test_spec.rb:11 # Thing using subject! returns memoized >>> version on first invocation >>> >>> >>> Now my question is how @count incremented by 3, shouldn't it be by 2 ? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "rspec" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected] <javascript:>. >>> To post to this group, send email to [email protected] >>> <javascript:>. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/rspec/d1e28613-e751-4b1a-9a9d-79a2ff02e419%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/rspec/d1e28613-e751-4b1a-9a9d-79a2ff02e419%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> >> >> -- >> >> Please consider the environment before printing this email. >> >> Regards, >> Surya >> >> -- >> You received this message because you are subscribed to the Google Groups >> "rspec" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] <javascript:> >> . >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/rspec/CAHGOqz489cB6o00nC7NKfa5%3DoMKXwirRPDpffM6%2BsbsFip2-xg%40mail.gmail.com >> >> <https://groups.google.com/d/msgid/rspec/CAHGOqz489cB6o00nC7NKfa5%3DoMKXwirRPDpffM6%2BsbsFip2-xg%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "rspec" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/afe54697-ced2-46b7-8610-b83fbf8d71fb%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
