【发布时间】:2018-05-14 20:19:04
【问题描述】:
这就是我遇到的错误
.F
失败: PostTest#test_post_should_be_valid [/home/ubuntu/workspace/test/models/post_test.rb:9]: ["用户必须存在"]
我不确定“用户必须存在”是什么意思,因为我很确定具有 user_id 的用户确实存在。 这是我的代码
post_test.rb
require 'test_helper'
class PostTest < ActiveSupport::TestCase
def setup
@post=Post.new(user_id: "1",name:"ruby meetup")
end
test "post should be valid" do
assert @post.valid?, @post.errors.full_messages
end
end
post.rb
class Post < ApplicationRecord
belongs_to :user
geocoded_by :address
after_validation :geocode, if: ->(obj){ obj.address.present? and obj.address_changed? }
reverse_geocoded_by :latitude, :longitude
after_validation :reverse_geocode
has_many :rsvps
has_many :users, through: :rsvps
validates :name, presence: true
end
我不确定这是否会有所帮助,但我还将包括我的用户测试和用户模型。
user_test.rb
require 'test_helper'
class UserTest < ActiveSupport::TestCase
def setup
@user=User.new(email:"fo30@hotmail.com", password: "h3h3123")
end
test "user should be valid" do
assert @user.valid?, @user.errors.full_messages
end
end
user.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :posts
has_many :rsvps
has_many :posts, through: :rsvps
validates :email, presence: true
end
任何帮助都将不胜感激,因为我最近才开始在 Rails 中进行测试。
【问题讨论】:
标签: ruby-on-rails ruby unit-testing