2010-01-11 3 views
2

J'essaie d'utiliser Webrat dans un script autonome pour automatiser la navigation sur le Web. Comment puis-je faire fonctionner la méthode assert_contain?Webrat Mécaniser en dehors des rails

require 'rubygems' 
require 'webrat' 

include Webrat::Methods 
include Webrat::Matchers 

Webrat.configure do |config| 
    config.mode = :mechanize 
end 

visit 'http://gmail.com' 
assert_contain 'Welcome to Gmail' 

Je reçois cette erreur

/usr/lib/ruby/gems/1.8/gems/webrat-0.6.0/lib/webrat/core/matchers/have_content.rb:57:in 'assert_contain': undefined method assert' for #<Object:0xb7e01958> (NoMethodError)

Répondre

2

assert_contain et d'autres assertions sont des méthodes de test/unité, essayez d'exiger et utiliser Webrat à l'intérieur d'une méthode d'essai:

require 'test/unit' 

class TC_MyTest < Test::Unit::TestCase 
    def test_fail 
    assert(false, 'Assertion was false.') 
    end 
end 

de toute façon je ne l'ai pas testé mais j'ai un spec_helper qui fonctionne pour rspec si cela peut vous intéresser:

require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT) 
require 'spec/rails' 

require "webrat" 

Webrat.configure do |config| 
    config.mode = :rails 
end 

module Spec::Rails::Example 
    class IntegrationExampleGroup < ActionController::IntegrationTest 

    def initialize(defined_description, options={}, &implementation) 
    defined_description.instance_eval do 
     def to_s 
     self 
     end 
    end 

    super(defined_description) 
    end 

    Spec::Example::ExampleGroupFactory.register(:integration, self) 
    end 
end 

plus une spécification:

# remember to require the spec helper 

describe "Your Context" do 

    it "should GET /url" do 
    visit "/url" 
    body.should =~ /some text/ 
    end 

end 

faire un essai je l'ai trouvé très utile (plus de concombre et les autres légumes autour) quand il n'y a pas besoin de Text spécifications (caractéristiques) au lieu du code spécifications, que j'aime le plus.

ps vous avez besoin du rspec gem et il installe la commande 'spec' pour exécuter vos spécifications.

Questions connexes