Rails Minitest有很多并且属于模型测试ActiveRecord :: UnknownPrimaryKey错误

问题描述 投票:0回答:1

[当我尝试使用simpleCov运行minitest时,我希望覆盖连接表模型UserMessages

我有安装夹具,可以运行测试并不断出现ActiveRecord::UnknownPrimaryKey错误。这是预料之中的,因为我在UserMessage表上没有主键。

是否有方法可以绕过此错误,并且可以覆盖UserMessage模型?

型号:

class User < ApplicationRecord
  has_and_belongs_to_many :messages, join_table "users_messages"
end

class Message < ApplicaitonRecord
  has_and_belongs_to_many :users, join_table: "users_messages"
end

class UserMessage <ApplicationRecord
  self.table_name = "users_messsages"
  belongs_to :user
  belongs_to :messages
end

固定装置:

用户:

default:
  name: test

消息:

default:
  message: hello world!
  users:
   - default

UserMessage:

default:
  user: default
  message: default

TEST:

require "test_helpers"
class UserMessageTest < ActiveSupport::TestCase
 def setup
  @user_message = user_message(:default) # The error happens here: ActiveRecord::UnknownPrimaryKey:\ 
                                         # Unknown primary key for table users_messages in model \      
                                         # UserMessage
 end

 test "is valid" do
  assert @user_message.valid?, "Should be valid"
 end
end
ruby-on-rails ruby minitest fixtures
1个回答
0
投票

我才意识到这是多么糟糕。

我只是不能使用固定装置来解决问题。

require "test_helper"
UserMessageTest < AcitveSupport::TestCase
  def setup
   @user_message = UserMessage.new(user_id: User.first.id,
                                   message_id: Message.first.id)

  end

  test "could save successfully" do
   assert @user_message.save
  end
end

测试通过!

© www.soinside.com 2019 - 2024. All rights reserved.