我有以下我的應用程序模型:協會在測試中沒有找到創建的對象
class Game < ActiveRecord::Base
has_many :players
has_many :villages, :through => :players
end
class Village < ActiveRecord::Base
belongs_to :player
end
class Player < ActiveRecord::Base
belongs_to :game
has_many :villages
before_create :build_starting_village
protected
def build_starting_village
villages.build(some_attributes)
end
end
我測試與早該/ FactoryGirl遊戲功能的某些部分,這是測試:
setup do
@villages = []
5.times do |i|
p = Factory(:player, :game => @game)
v = p.villages.first
assert v
@villages << v
end
assert_equal @villages.size, @game.villages.size
end
問題是最後一個斷言失敗。我已經嘗試了許多醜陋的東西,如:
@game.villages(true)
@game.players(true)
@game = Game.find(@game.id)
但我看不出要找到問題的根源。我曾嘗試禁用交易燈具(我不使用燈具,但我認爲這也影響工廠女孩),它在其他測試中有幫助,但在這裏它沒有效果。
設置塊中的斷言在大約4次運行中失敗。我試圖懷疑MySQL ...當我從RubyMine調試它時,所有事情都通過重新加載語句傳遞,但不是從命令行傳遞。
我已經能夠通過改變來解決這個問題是什麼在我看來,無關的代碼。我一定會回到這裏,找出原因。 – Honza 2010-09-14 19:39:18