簡體   English   中英

Ruby on Rails,單元測試中的錯誤

[英]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? Arraytrue ,並且assert_instance_of來源暗示它應該足夠好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM