[当我尝试使用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
我才意识到这是多么糟糕。
我只是不能使用固定装置来解决问题。
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
测试通过!