2

我使用 Mongoid 作为数据库,我有两个模型,如下所示。我不能断言 has_many 和 belongs_to 关系。我可以在 MiniTest 中断言这种关系。

事件.rb

class Event
  include Schizo::Data
  include Mongoid::Document

  field :name
  field :start_at
  field :finish_at
  field :status
  field :location

  has_many :participations
end

参与.rb

class Participation
  include Mongoid::Document

  belongs_to :event
  belongs_to :participant

end
4

2 回答 2

0

考虑mongoid-minitest为此使用 gem。在此处查看详细信息

您的规格将如下所示:

describe Event do
  subject { Event }

  it { must have_many(:participations) }
end

describe Participation do
  subject { Participation }

  it { must belong_to(:participations) }
end
于 2013-05-03T10:40:38.370 回答
0

这就是我has_many在 Rails 中使用 Minitest 测试关联的方式,它也应该适用于您。把它放在你的模型测试文件中Event

  test 'contains a has_many relationship to participations' do
    expected = [
      :participations
    ].sort

    actual = Event.reflect_on_all_associations(:has_many).map(&:name).sort

    assert_equal(expected, actual)
  end

这就是我belongs_to在 Rails 中使用 Minitest 测试关联的方式,它也应该适用于您。把它放在你的模型测试文件中Participation

  test 'contains a belongs_to relationship to some models' do
    expected = [
      :event,
      :participant
    ].sort

    actual = Participation.reflect_on_all_associations(:belongs_to).map(&:name).sort

    assert_equal(expected, actual)
  end

仅供参考:无论数据库实现如何,这都应该有效。

于 2022-02-24T20:30:56.057 回答