2014-10-01 63 views
54

就我所見,在ember CLI中測試ember-data模型時,所有關係都必須在needs中列出。如果結構很簡單,這很好,但在很多情況下會有多個層。Ember CLI測試複雜的模型關係

例如,如果模型被設置與以下關係定義:

Model a: 
    belongsTo: b 
    belongsTo: c 

Model b: 
    hasMany: a 
    hasMany: d 

Model c: 
    hasMany: a 
    belongsTo: e 

Model d: 
    hasMany b 

Model e: 
    hasMany c 

那麼對於任何這些模型中的每一個單元測試將要求needs列出的每個其它模式,例如一種c測試:

needs: [ 
    'model:a' // Because c -> a 
    'model:e' // Because c -> e 
    'model:b' // Because c -> a -> b 
    'model:d' // Because c -> a -> b -> d 
] 

我的實際配置是很多與14款車型,而且每一個間接相關的所有其他更復雜。

我的理解是否正確?有沒有更有效的方法來做到這一點?或者是否有這樣做的一個很好的理由,我失蹤了?

+0

我就在昨天晚上升級了項目0.0.46,並注意到這種行爲爲好,我不記得它在以前的版本中發生的事情。可能是新的燼數據? – Dhaulagiri 2014-10-01 14:20:05

+6

該問題正在通過[此PR]解決(https://github.com/stefanpenner/ember-cli/pull/2351)。 – 2014-11-14 07:52:30

回答

1

如果您使用Ember默認的'Ember-QUnit',那麼您必須列出需求中的所有模型。

但是有一個替代方案用於我正在使用的測試,即ember-data-factory-guy。 當測試模型,組件,控制器等時,用於創建工廠而不是夾具數據。

您可以通過它。

https://github.com/danielspaniel/ember-data-factory-guy