sirve sintaxis rails que proyecto para introduccion iniciar funciona ejemplo como aprender ruby-on-rails activerecord rspec gem

ruby on rails - sintaxis - Probando modelos de ActiveRecord dentro de una gema?



que es ruby on rails y para que sirve (2)

He descubierto que si está probando sus modelos aislados, también puede intentar usar las capacidades en memoria de SQLite3 al definir la conexión ActiveRecord para obtener especificaciones muy rápidas:

ActiveRecord::Base.establish_connection( :adapter => ''sqlite3'', :database => '':memory:'' )

Pruébalo, funcionó como un encanto para mí y consiguió que mis modelos fueran probados mucho más rápido.

Estoy tratando de extraer un conjunto de modelos de una aplicación Rails 3.2.3 en una joya para que puedan ser utilizados como una interfaz compartida entre aplicaciones.

Moví el modelo a un módulo y lo puse en lib / invite_interface / invite.rb

module InviteInterface class Invite < ActiveRecord::Base belongs_to :user end def to_json; end; def from_json; end; end

Pellizqué rspec en el gemfile, lo ejecuté con éxito y creé la siguiente especificación:

require ''spec_helper'' describe InviteInterface::EncounterSurvey do it ''should belong to user'' do subject.should respond_to(:user) end end

Lamentablemente, no puedo ejecutar rspec en el modelo, porque active record / rspec quiere una conexión activa.

1) InviteInterface::Invite should belong to encounter survey set Failure/Error: subject.should respond_to(:user) ActiveRecord::ConnectionNotEstablished: ActiveRecord::ConnectionNotEstablished # /Users/justin/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:398:in `retrieve_connection'' # /Users/justin/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection'' # /Users/justin/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection'' # /Users/justin/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/activerecord-3.2.3/lib/active_record/model_schema.rb:228:in `columns'' # /Users/justin/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/activerecord-3.2.3/lib/active_record/model_schema.rb:243:in `column_defaults''

¿Cómo evito que ActiveRecord busque una conexión de base de datos?


De todos modos, debe probar su biblioteca con una base de datos, por lo que también podría utilizar una base de datos SQLite en la memoria para realizar pruebas. Solo agregue esto a spec_helper.rb :

ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")

y crea tu esquema de la siguiente manera:

ActiveRecord::Schema.define do self.verbose = false create_table :invites, :force => true do |t| t.string :text end ... end