If I want to include an 'if' clause, then how should I do that; with/
without the assertion(s)?

I'm trying to automate the creation of a new instance of a browser
(with a target url), if none is found; so I would like it to catch as
an exception and then exit, without throwing an exception that the end-
user cannot understand (if that makes any sense).

I'm trying to negate/mitigate the causal failure(s) that can be
sourced by user activity/inactivity.
Can I use an else, without the conditional 'if', in spec? i.e.: If it
doesn't find the text, the browser refreshes, instead of failing the
assertion.

The assertion requires it (object, field, text, ect.), but does not
give conditional/situational alternatives, from the context that I've
seen, and was wondering if that assumption was wrong?

In other words, if I want the assertion, but the correction of the
assertion to exist, how to I initialize that without including the
conditional 'if' statement?

Thanks!



On Apr 16, 5:15 am, Jarmo Pertman <jarm...@gmail.com> wrote:
> First, you do not want to require test/unit and spec together. Just
> require spec.
>
> Second, use real assertions not if statements.
>
> So, this example would work, run it by spec T.rb
>
> require 'watir/ie'
> require 'spec'
>
> describe "Ticket Processing" do
>
>    before :all do
>     �...@browser = Watir::IE.attach(:url, 
> 'https://www.servicecenterweb.unisys.com/sc2/index.do')
>    end
>
>    it "does something" do
>     �...@browser.text.should include("COMPANY INFORMATION")
>    end
> end
>
>
>
> > «°¤§ømåtïçCðrp§ë¤°» wrote:
> > > So, I'm trying to do some BDD/TDD development, and I can't figure some
> > > things out...
>
> > > Primarily, if I run the script, using "ruby T.rb", nothing happens -
> > > nothing returns, etc. If I use "spec T.rb", then I get a bunch of
> > > errors.
>
> > > Does ruby/watir/spec treat each instance (describe/do) as it's own
> > > main, leaving the objects within that section?
>
> > > I'll append the code, to illustrate what I'm doing, and the errors,
> > > afterwards...
>
> > > [code]
>
> > > ##-------------------------------------------------------------------------­-------------------------------------------
> > > ##
> > > ##                                                                        
> > >                                                  ##
> > > ##Sevin V 0.0.1                                                           
> > >                                          ##
> > > ##Sevin is written by Bailey, John E.                                     
> > >                                          ##
> > > ##Sevin is written under the GPL/GNU.                                     
> > >                                          ##
> > > ##                                                                        
> > >                                          ##
> > > ##                                      ErrorCodes ::
> > > ErrorCodes                                                         ##
> > > ##Code1 - User Initiated Error (Some instance that is directly related
> > > to user action/inaction)           ##
> > > ##Code2 - System Initiated Error (Some instance that is directly
> > > related to system action/inaction) ##
> > > ##                                                                        
> > >                                          ##
> > > ##                                                                        
> > >                                          ##
> > > ##-------------------------------------------------------------------------­-------------------------------------------
> > > ##
>
> > >   #################
> > >  #Process Dependencies        #
> > > #################
> > > require 'spec'
> > > require 'watir'
> > > require 'test/unit'
>
> > >     ##########################
> > >    #                                                     #
> > >   #                  Begin Iteration                    #
> > >  #                                                            #
> > > ##########################
>
> > > #####################
> > > #Get Customer Info                    #
> > > ####################
> > > Fname = String.new
> > > LName = String.new
>
> > > puts "What is the user's First Name?"
> > > Fname = gets.chomp #Removes return (recognized as new line command)
> > > character '\n'
> > > puts "What is the user's Last Name?"
> > > Lname = gets.chomp #Removes return (recognized as new line command)
> > > character '\n'
>
> > > #####################
> > > #Take control of the Brower        #
> > > ####################
> > >    describe "Ticket Processing" do
> > >            it "should click the button to begin the process" do
> > >                    begin
> > >                    #attach to a running instance of IE
> > >                    browser = Watir::IE.attach(:url, 'https://
> > >www.servicecenterweb.unisys.com/sc2/index.do')
> > >                            #rescue the process, if no instance is running
> > >                            rescue 
> > > Watir::Exception::NoMatchingWindowFoundException
> > >                                    puts "ALERT: You must have a running 
> > > instance of SVC open!"
> > >                                    browser = Watir::IE.new(:url, 'https://
> > >www.servicenterweb.unisys.com/sc2/index.do')
> > >                                    puts "Please log into SVC and restart 
> > > Sevin. Exiting: Code1."
> > >                            break
> > >                    end
> > >                    #sets speed of browser/process handling
> > >                    browser.speed = :zippy
> > >                    #take control and begin creating a new ticket
> > >                    browser.frame(:id, 'detail').button(:id, 'X8').click
> > >            end
> > >    end
> > > ######################
> > > #Validate IE returned correct page #
> > > #####################
> > >    describe "vaildating text on the page" do
> > >            it "should find predefine text on a page" do
> > >                    #validate that the process worked
> > >                    if ibrowser.text.include?("COMPANY INFORMATION")
> > >                                    puts: "Validated returned page - Sevin 
> > > Continuing."
> > >                            else
> > >                                    puts: "Sevin Failed! Exiting: Code2. 
> > > Page didn't contain text:
> > > COMPANY INFORMATION."
> > >                                    break
> > >                    end
> > >            end
> > >    end
> > > ######################
> > > #Begin Entitlement processing        #
> > > #####################
> > >    describe "Entitlment processing" do
> > >            it "should insert the user's name and company" do
> > >                    #Insert company name and user
> > >                    broswer.frame(:id, 'detail').text_field(:id, 
> > > 'X6').set("BAXTER")
> > >                    browser.frame(:id, 'detail').text_field(:id, '  
> > > ').set(%Fname)
> > >                    broswer.frame(:id, 'detail').text_field(:id, '  
> > > ').set(%Lname)
> > >                    browser.frame(:id, 'detail').button(:id, '  ').click
> > >            end
> > >    end
> > > ######################
> > > #Ensure entitlement was successful #
> > > #####################
> > >    describe "Validate text on page (phone)" do
> > >            it "should fine some data filled into form" do
> > >                    #Validate data is in phone field
>
> > >            end
> > >    end
> > > ######################
> > > #Begin Ticket Creation                  #
> > > #####################
> > >    describe "Begin creating the ticket" do
> > >            it "should place data into the required fields" do
> > >                    #Insert data
>
> > >            end
> > >    end
>
> > > #TODO: implement remaining code, after admin privileges are granted.
> > > [/code]
>
> > > ERRORS:
> > > C:\Documents and Settings\M0nKy\Desktop>spec T.rb
> > > What is the user's First Name?
> > > What is the user's Last Name?
> > > .ALERT: You must have a running instance of SVC open!
> > > Please log into SVC and restart Sevin. Exiting: Code1.
> > > FFF..
>
> > > 1)
> > > NoMethodError in 'Ticket Processing should click the button to begin
> > > the process
> > > '
> > > undefined method `speed=' for nil:NilClass
> > > ./T.rb:55:
>
> > > 2)
> > > NameError in 'vaildating text on the page should find predefine text
> > > on a page'
> > > undefined local variable or method `browser' for
> > > #<Spec::Example::ExampleGroup::
> > > Subclass_3:0x32e7acc>
> > > ./T.rb:67:
>
> > > 3)
> > > NameError in 'Entitlment processing should insert the user's name and
> > > company'
> > > undefined local variable or method `browser' for
> > > #<Spec::Example::ExampleGroup::
> > > Subclass_4:0x32e4b88>
> > > ./T.rb:81:
>
> > > Finished in 12.578 seconds
>
> > > 6 examples, 3 failures
>
> > > C:\Documents and Settings\M0nKy\Desktop>
>
> > > C:\Documents and Settings\M0nKy\Desktop>ruby T.rb
>
> > > C:\Documents and Settings\M0nKy\Desktop>
>
> > --
> > Bret Pettichord
> > CTO, WatirCraft LLC,www.watircraft.com
> > Lead Developer, Watir,www.watir.com
> > Blog,www.io.com/~wazmo/blog
> > Twitter,www.twitter.com/bpettichord
>
> > Watir Training: Portland/Beaverton April 16-17www.watircraft.com/training- 
> > Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To post to this group, send email to watir-general@googlegroups.com
Before posting, please read the following guidelines: 
http://wiki.openqa.org/display/WTR/Support
To unsubscribe from this group, send email to 
watir-general-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/watir-general
-~----------~----~----~----~------~----~------~--~---

Reply via email to