p = Factory(:model)
ap Model.find(:all) #output to prove that it's getting created
итак ... печать показывает, что идентификаторы объектов увеличиваются .... но база данных остается пустой, так как я постоянно обновляю представление на MySQL Workbench - так что мои тесты на огурец терпят неудачу, потому что контроллеры тянут вещи из базы данных ... но в базе ничего нет! = (* * Тысяча два
My Gem file: test
group :test do
gem "cucumber", "~>0.10.3"
gem "cucumber-rails", "0.3.2"
gem "launchy"
gem "hpricot"
gem "gherkin", "~>2.4.0"
gem "capybara", "0.4.1.2"
gem "rspec", "1.3.2"
gem "rspec-rails", "1.3.2"
gem "rspec-core"
gem "rspec-expectations"
gem "webrat", "0.7.0"
gem "database_cleaner"
gem "factory_girl", "1.2.4"
gem "shoulda", :require => nil
gem "shoulda-matchers", :git => "https://github.com/thoughtbot/shoulda-matchers"
gem "awesome_print"
gem "cobravsmongoose"
end
Мой Требуется для env.rb (огуречный env)
ENV["RAILS_ENV"] = 'test'
ENV["RACK_ENV"] = 'test'
BASE_DOMAIN = "myapp.dev" #using POW
require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
require 'cucumber/formatter/unicode' # Remove this line if you don't want Cucumber Unicode support
require 'cucumber/rails/world'
require 'cucumber/rails/active_record'
require 'cucumber/web/tableish'
require 'cucumber/rails/rspec'
require 'rake'
require 'shoulda'
require 'factory_girl'
require 'factory_girl/step_definitions'
require 'awesome_print'
require 'capybara/rails'
require 'capybara/cucumber'
require 'capybara/session'
А в envs / test.rb
Bundler.require(:test) #just in case I forgot something
EDIT:
Некоторый вывод на консоль
Factory (: модель) .errors =>
#<ActiveRecord::Errors:0x10c5a6498 @base=#<ModelName id: 1, name: "Ready or not", status: 0, account_id: 2, user_id: 1, created_at: "2011-09-08 15:09:05", updated_at: "2011-09-08 15:09:05", description: "Things are not as they used to be", value: #<BigDecimal:10cb2c188,'0.12345E5',9(18)>, category_id: nil, allow_downloads: true, visibility: 1, locked: nil>, @errors=#<OrderedHash {}>>
И, глядя на консоль во время выполнения, этот объект def попадает в команду INSERT INTO ... но есть это:
RELEASE SAVEPOINT active_record_1
SQL (1.3ms) ROLLBACK
Что, я чувствую, может быть причиной проблемы ... своего рода упреждающий откат.