The following code works but there is nothing in the feature that I can say that the exception is thrown.
Given /I have a negative number/ do end When "I pass the negative $n_number to the prime service" do |n_number| lambda {...@primeservice.isprime(n_number.to_i)}.should raise_error end Then /the service should throw exception/ do end On Thu, Sep 24, 2009 at 1:58 PM, Mohammad Azam <azamsh...@gmail.com> wrote: > I am having trouble in where to throw the exception. The exception will be > thrown in "When" and not "Then" as shown below: > Scenario Outline: Throw exception if the number is negative > Given I have a negative number > When I pass the negative <n_number> to the prime service > Then the service should throw exception > > *Steps: * > > > Given /I have a negative number/ do > > end > > When "I pass the negative $n_number to the prime service" do |n_number| > > {...@primeservice.isprime(n_number.to_i)}.should raise_error > > end > > Then /the service should throw exception/ do > > > end > > *The above throws the following exception: * > * > * > * > C:\Projects\ILoveIronRuby\ILoveIronRuby\testing>icucumber > features/primeservice. > feature --guess --no-color > odd number list for Hash (SyntaxError) > > C:\DevTools\IronRuby\ironruby\Merlin\Main\Languages\Ruby\Libraries.LCA_RESTRICTE > D\Builtins\KernelOps.cs:1341:in `require' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/rb_support/r > b_language.rb:101:in `load_code_file' > custom_require.rb:30:in `require' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/rb_support/r > b_language.rb:46:in `step_definitions_for' > polyglot.rb:69:in `require' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/step_mother. > rb:118:in `load_code_file' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/step_mother. > rb:110:in `load_code_files' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/step_mother. > rb:109:in `load_code_files' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/cli/main.rb: > 48:in `execute!' > > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/../lib/cucumber/cli/main.rb: > 23:in `execute' > > C:\DevTools\IronRuby\ironruby\Merlin\Main\Languages\Ruby\Libraries.LCA_RESTRICTE > D\Extensions\IListOps.cs:810:in `each' > c:/ruby/lib/ruby/gems/1.8/gems/cucumber-0.3.101/bin/cucumber:9 > c:/ruby/bin/cucumber:19 > > C:\DevTools\IronRuby\ironruby\Merlin\Main\Languages\Ruby\Libraries.LCA_RESTRICTE > D\Builtins\KernelOps.cs:1326:in `load' > > C:\Projects\ILoveIronRuby\ILoveIronRuby\testing> > * > > > > > > On Thu, Sep 24, 2009 at 1:37 PM, Jim Deville <jdevi...@microsoft.com>wrote: > >> To check for an exception: you need to get it into the form lambda { expr >> }.should raise_error ErrorType where expr is your test expression, and >> ErrorType is the type of the error you expect. In this case, you might >> need to have the second feature read “When I pass the negative number >> <number> to the prime service” so that you can parse it differently and just >> store the number, then in the Then step for that negative number, you can do >> lambda { @primeService.IsPrime(number.to_i) }.should raise_error Exception >> >> >> >> Does that help? >> >> JD >> >> >> >> *From:* ironruby-core-boun...@rubyforge.org [mailto: >> ironruby-core-boun...@rubyforge.org] *On Behalf Of *Mohammad Azam >> *Sent:* Thursday, September 24, 2009 1:30 PM >> >> *To:* ironruby-core@rubyforge.org >> *Subject:* Re: [Ironruby-core] Is there a But keyword in Cucumber? >> >> >> >> Actually I also thought of that and I did separated them in multiple >> scenarios. Now, I am having trouble writing the step. >> >> >> >> Here is the feature file: >> >> >> >> >> >> Feature: Prime Service >> >> >> >> As a crazy person I need to know whether a number is prime or not >> >> >> >> Scenario Outline: Find if the number if prime or not >> >> Given I have a number >> >> When I pass the <number> to the prime service >> >> Then the service should display <result> indicating whether input is prime >> or not >> >> >> >> Examples: >> >> >> >> | number| result| >> >> | 1 | false | >> >> | 2 | true | >> >> | 3 | true | >> >> | 4 | false | >> >> >> >> Scenario Outline: Throw exception if the number is negative >> >> Given I have a negative number >> >> When I pass the <number> to the prime service >> >> Then the service should return false >> >> >> >> Examples: >> >> >> >> | number| >> >> | -1 | >> >> | -2 | >> >> | -3 | >> >> | -4 | >> >> >> >> >> >> And here are the steps: >> >> >> >> require 'rubygems' >> >> require 'spec/expectations' >> >> >> >> require File.expand_path("bin/Debug/BusinessObjects.dll") >> >> >> >> include BusinessObjects >> >> >> >> Before do >> >> >> >> @primeService = PrimeService.new >> >> >> >> end >> >> >> >> Given /I have a number/ do >> >> >> >> end >> >> >> >> When "I pass the $number to the prime service" do |number| >> >> >> >> @result = @primeService.IsPrime(number.to_i) >> >> >> >> end >> >> >> >> Then /the service should display (.*) indicating whether input is prime or >> not/ do |result| >> >> >> >> @result.to_s.should == result >> >> >> >> end >> >> >> >> Given /I have a negative number/ do >> >> >> >> end >> >> >> >> When "I pass the $number to the prime service" do |number| >> >> >> >> @result = @primeService.IsPrime(number.to_i) >> >> >> >> end >> >> >> >> Then /the service should return (.*)/ do |result| >> >> >> >> @result.to_s.should == result >> >> >> >> end >> >> >> >> >> >> Also, not sure how to check for exception right now! >> >> >> >> >> >> >> >> >> >> On Thu, Sep 24, 2009 at 1:10 PM, Jim Deville <jdevi...@microsoft.com> >> wrote: >> >> You should probably split that into 2 scenarios. One for finding prime or >> not, and one for throwing if the number is negative. >> >> >> >> There might be an else construct, but I would argue that if you need an >> else/but, then you have 2 behaviors in a single scenario. >> >> >> >> JD >> >> >> >> *From:* ironruby-core-boun...@rubyforge.org [mailto: >> ironruby-core-boun...@rubyforge.org] *On Behalf Of *Mohammad Azam >> *Sent:* Thursday, September 24, 2009 1:07 PM >> *To:* ironruby-core@rubyforge.org >> *Subject:* [Ironruby-core] Is there a But keyword in Cucumber? >> >> >> >> I am using Cucumber and now I need to use a But keyword (if there is any) >> >> >> >> Scenario Outline: Find if the number if prime or not >> >> Given I have a number >> >> When I pass the <number> to the prime service >> >> Then the service should display <result> indicating whether input is prime >> or not >> >> But if the number is negative >> >> Then the prime service should throw an exception >> >> >> >> But it shows up as "Then" and not "But". Is there anything related to >> "But" in Cucumber. >> >> >> >> >> -- >> Mohammad Azam >> MVP (Microsoft Valuable Professional) >> www.highoncoding.com >> www.azamsharp.com >> >> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core@rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> >> >> >> -- >> Mohammad Azam >> MVP (Microsoft Valuable Professional) >> www.highoncoding.com >> www.azamsharp.com >> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core@rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> > > > -- > Mohammad Azam > MVP (Microsoft Valuable Professional) > www.highoncoding.com > www.azamsharp.com > -- Mohammad Azam MVP (Microsoft Valuable Professional) www.highoncoding.com www.azamsharp.com
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core