[英]Ruby on rails, error in unit test
我有一對多的關系,一組有很多服務器。 為了測試這種關系,我編寫了此測試,但是它僅在我未上線時才起作用。 為什么?
test 'Group can include server' do
group = groups(:default)
group.servers << servers(:default)
# Test work, when I uncomment this line:
# assert_instance_of Array, group.servers
group.save
assert_instance_of Server, group.servers.first
end
因為group.servers
不是 Array
。 它的行為很像,但實際上是ActiveRecord :: Association :: HasManyAssociation的一個實例。 它的祖先類(ActiveRecord :: Association :: AssociationProxy)實際上將偶數class
傳遞給基礎對象,因此group.servers.class
確實提供了Array
,但實際上不是。
編輯:快速說明一下,雖然我很確定這是您失敗的原因,但這並不完全有意義。 在我的測試應用中,是否等同於group.servers.instance_of? Array
group.servers.instance_of? Array
為true
,並且assert_instance_of
的來源暗示它應該足夠好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.