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

Reply via email to