Oss*_*sie 8 rspec ruby-on-rails ruby-on-rails-4 factory-bot
更新 我试图让Factory Girl用日期,随机日期填写我的"发布日期"字段,坦率地说现在是任何日期,因为当我运行时我不断收到"验证失败:发布日期不能为空"错误我的item_pages_spec.rb
在下面的一些帮助之后,他就是我在我的factory.rb中的项目页面,但我现在尝试了很多不同的东西.
factory :item do
sequence(:name) { |n| "Item #{n}" }
release_date { rand(1..100).days.from_now }
end
Run Code Online (Sandbox Code Playgroud)
理想情况下,它会为每个工厂制作的项目实例创建不同的随机日期.
发布日期不能为空,因为validates :release_date, presence: true我的项目模型中有.理想情况下,我有一个验证,确保提供的任何日期是一个日期,但也接受NIL,因为我不会总是有可用的日期.
任何帮助非常感谢.我在网上找不到关于工厂女孩和约会的具体信息.
模型
class Item < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50 }
validates :release_date, presence: true
Run Code Online (Sandbox Code Playgroud)
结束
Item_pages_spec.rb
require 'spec_helper'
describe "Item pages" do
subject { page }
describe "Item page" do
let(:item) { FactoryGirl.create(:item) }
before { visit item_path(item) }
it { should have_content(item.name) }
it { should have_title(item.name) }
end
end
Run Code Online (Sandbox Code Playgroud)
小智 7
该法克尔宝石有这是一个非常不错的方法:
Faker::Date.between(2.days.ago, Date.today)
Run Code Online (Sandbox Code Playgroud)
这将设置从现在到 2 年后的日期,如果需要调整参数(或提取方法):
factory :item do
sequence(:name) { |n| "Item #{n}" }
release_date do
from = Time.now.to_f
to = 2.years.from_now.to_f
Time.at(from + rand * (to - from))
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6605 次 |
| 最近记录: |