Ruby on rails 什么';rails rspec代码“to\u not\u valid”的意思是什么?
当我使用RubyonRails学习如何使用railsRuby on rails 什么';rails rspec代码“to\u not\u valid”的意思是什么?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,当我使用RubyonRails学习如何使用railsrspec测试代码时,有些代码我不理解,下面是代码,它只是一个关于停车收费表测试的代码 db/migrate/xxxxx_create_parking.rb class CreateParkings < ActiveRecord::Migration[5.0] def change create_table :parkings do |t| t.string :parking_type #guest, shor
rspec
测试代码时,有些代码我不理解,下面是代码,它只是一个关于停车收费表测试的代码
db/migrate/xxxxx_create_parking.rb
class CreateParkings < ActiveRecord::Migration[5.0]
def change
create_table :parkings do |t|
t.string :parking_type #guest, short-term, long-term
t.datetime :start_at
t.datetime :end_at
t.integer :amount
t.integer :user_id, index: true
app/spec/models/parking_spec.rb
require 'rails_helper'
RSpec.describe Parking, type: :model do
#pending "add some examples to (or delete) #{__FILE__}"
describe ".validate_end_at_with_amount" do
it "is invalid without amount" do
parking = Parking.new( :parking_type => "guest",
:start_at => Time.now - 6.hours,
:end_at => Time.now)
expect(parking).to_not be_valid
end
it "is invalid without end_at" do
parking = Parking.new( :parking_type => "guest",
:start_at => Time.now - 6.hours,
:amount => 999)
expect(parking).to_not be_valid
end
end
end
db/migrate/xxxxx\u create\u parking.rb
类CreateParkings“来宾”,
:start_at=>Time.now-6.hours,
:end_at=>Time.now)
预期(停车)。将无效
结束
它“在”do“处没有结尾是无效的
停车=停车。新建(:停车类型=>“来宾”,
:start_at=>Time.now-6.hours,
:金额=>999)
预期(停车)。将无效
结束
结束
结束
那么,
无效和t.integer:user\u id,index:true的意思是什么呢?谢谢。对于be\u valid
它正在测试新记录的ActiveModel::Validations
,它的工作原理类似于valid?
函数,将not\u置于
你的意思是当我插入此记录时parking=parking.new(:parking\u type=>“guest”,:start\u at=>Time.now-6.hours,:amount=>999)
没有end\u at
它不应该工作,通过这一点,您可以检查您的代码在无效情况下是否工作正常,这里有一个很好的资源
对于第二部分t.integer:user\u id
这是ActiveRecord
中的一个命令,它在表中添加一个名为user\u id
的新列/字段,并
index:true
将索引放在上面(这是数据库世界中的一个概念,有助于在更短的时间内检索记录),user\u id
通常用作外键。哇,谢谢,我得到了一些东西!对于代码expect(驻车)。如果无效,则表示“它希望驻车无效”