Hi, I am new to rspec. I am trying to write a spec for a simple ruby program i.e class First def test a = gets.chomp return a end end I have tried in different ways test method is called from the spec file. but gets.chomp is not executing? Please kindly advise me, how to write spec for this. Thanks Gokul -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100123/0d255b5a/attachment.html>
Hi, I am new to rspec. I am trying to write a spec for a simple ruby program i.e class First def test a = gets.chomp return a end end I have tried in different ways test method is called from the spec file. but gets.chomp is not executing… Please kindly advise me, how to write spec for this. Thanks Gokul -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Fri, Jan 22, 2010 at 1:46 PM, gokul murthy <railsthinker at gmail.com> wrote:> Hi, > I am new to rspec. I am trying to write a spec for a simple ruby program i.e > class First > def test > a = gets.chomp > return a > end > end > I have tried in different ways test method is called from the spec file. but > gets.chomp is not executing? > Please kindly advise me, how to write spec for this.Even though it seems simple, you''ve chosen a rather complex situation to try to learn Rspec from. Did you pick this because you really need to solve it, or is this just an academic exercise? If the latter, let''s start somewhere simpler, and get to things like simulating IO later :) It is always easiest to start with examples in which you can create an object with some state, send it a message (call a method), and set expectations about the result: given/when/then. describe Person, "full name" do context "with a first and last name" do it "concats the names with a space between them" do #given person = Person.new(:first_name => "Gokul", :last_name => "Murthy") # when full_name = person.full_name #then full_name.should == "Gokul Murthy" end end end I separated out the When and Then to make it clear which is which, but in practice I''d likely just write this: it "concats the names with a space between them" do person = Person.new(:first_name => "Gokul", :last_name => "Murthy") person.full_name.should == "Gokul Murthy" end Now we have a pretty clear picture of how we want to create a Person and how we want to ask for its name, and what our expected outcome is. If you really want to know about specifying IO, let me know and I''ll show you a couple of ways to do it, but they are much less straightforward. Cheers, David> Thanks > Gokul
David Chelimsky wrote:> On Fri, Jan 22, 2010 at 1:46 PM, gokul murthy <railsthinker at gmail.com> > wrote: >> Please kindly advise me, how to write spec for this. > Even though it seems simple, you''ve chosen a rather complex situation > to try to learn Rspec from. Did you pick this because you really need > to solve it, or is this just an academic exercise? If the latter, > let''s start somewhere simpler, and get to things like simulating IO > later :) > > It is always easiest to start with examples in which you can create an > object with some state, send it a message (call a method), and set > expectations about the result: given/when/then. > > describe Person, "full name" do > context "with a first and last name" do > it "concats the names with a space between them" do > #given > person = Person.new(:first_name => "Gokul", :last_name => > "Murthy") > # when > full_name = person.full_name > #then > full_name.should == "Gokul Murthy" > end > end > end > > I separated out the When and Then to make it clear which is which, but > in practice I''d likely just write this: > > it "concats the names with a space between them" do > person = Person.new(:first_name => "Gokul", :last_name => > "Murthy") > person.full_name.should == "Gokul Murthy" > end > > Now we have a pretty clear picture of how we want to create a Person > and how we want to ask for its name, and what our expected outcome is. > > If you really want to know about specifying IO, let me know and I''ll > show you a couple of ways to do it, but they are much less > straightforward. > > Cheers, > DavidHey, I am learning RSpec as well and it would be great if you could show how to test IO. Thanks, Tumas -- Posted via http://www.ruby-forum.com/.