我想爲Rails應用程序構建測試套件,但我不確定如何使用FactoryGirl構建對象(如果需要,我可以移動到其他工具) 。與RSpec/FactoryGirl建立嵌套關聯的最佳方式
棘手的部分是,有有很深的嵌套的關聯,讓我們例如模式的這一部分:http://imgur.com/HAUS7kr
比方說,我想要做的「ItemTracker」模式的一些測試。現在有2種方法:
爲了有一個有效的對象,我需要建立一個聯接,這需要一個令牌,這需要一個項目,等等。另外,我要的項目項的項目與Token的項目一樣。與公司一樣(在上面)。我不想要創建2個不同的項目或公司。所以我需要一種方式讓這些對象共享一些關聯。這種方法的一個缺點是,我不知道如何使不創建幾個關聯的對象,我也要建立一個我不一定需要的對象(除了驗證)
我可以說「對於這個特定的測試,這些關聯是不相關的,所以我只是創建一個ItemTracker,沒有它的Connexion或者ProjectItem,並且用這個孤立的對象來做我的事情。通常情況下,我只是創建實際需要的對象和關聯。通過玩特質,我找到了一種避免創建關聯的方法,如果我不需要它們的話。缺點是這個對象是無效的(對關聯有驗證),所以每次我會試着在它上面保存一些東西時,我會有一個異常,這在某些測試用例中會很痛苦。
所以我想我的問題是:在這種複雜的對象結構中設置一些用於測試的對象的最佳方法是什麼?
感謝您的反饋意見;)