Rails minitest有很多属于模型测试ActiveRecord::UnknownPrimaryKey错误

Rails Minitest Has Many And Belongs To Model Test ActiveRecord::UnknownPrimaryKey Error

当我尝试 运行 使用 simpleCov 进行小型测试时,我希望覆盖连接 table 模型 UserMessages

我有安装夹具,运行 测试并不断收到 ActiveRecord::UnknownPrimaryKey 错误。这是预料之中的,因为我在 UserMessage table.

上没有主键

有没有办法绕过这个错误并覆盖 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

用户留言:

default:
  user: default
  message: default

测试:

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

我才意识到这有多糟糕。

我无法使用夹具来解决问题。

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

测试通过!