Ruby on rails 什么';rails rspec代码“to\u not\u valid”的意思是什么?

Ruby 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

当我使用RubyonRails学习如何使用rails
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(驻车)。如果无效,则表示“它希望驻车无效”