加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Cucumber:Factory Girl不修改数据库 – 用.cr

发布时间:2020-12-17 01:28:19 所属栏目:百科 来源:网络整理
导读:p = Factory(:model) ap Model.find(:all) #output to prove that it's getting created 所以…打印显示对象的ID正在上升….但是数据库仍然是空的,因为我不断刷新MySQL工作台上的视图 – 所以我的黄瓜测试失败,因为控制器从数据库中提取东西…但数据库中没有
p = Factory(:model) 

  ap Model.find(:all)  #output to prove that it's getting created

所以…打印显示对象的ID正在上升….但是数据库仍然是空的,因为我不断刷新MySQL工作台上的视图 – 所以我的黄瓜测试失败,因为控制器从数据库中提取东西…但数据库中没有任何内容! =(

我的Gem文件:测试

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["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

编辑:

一些控制台输出
工厂(:型号).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 {}>>

在运行时查看控制台,这个对象是INSERT INTO命令…但是有这样的:

RELEASE SAVEPOINT active_record_1
  SQL (1.3ms)   ROLLBACK

我觉得可能是导致问题的原因……某种先发制人的回滚.

解决方法

试试这个:

在env.rb中

require 'database_cleaner'
require 'database_cleaner/cucumber'
DatabaseCleaner.strategy = nil

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读