我使用MVVM與ReactiveCocoa和OCMockito進行測試。假設我有一個ViewController A和ViewController B.需要對B執行一個segue。我想驗證當發生這種情況時,A首先通過賦值將必要的數據('model')傳遞給B。如何使用OCMockito驗證只讀屬性的行爲?
B
看起來是這樣的:
@interface ViewControllerB : UITableViewController
@property(nonatomic, readonly) ViewModel *viewModel;
@end
某處在視圖控制器A
,有一種說法:
viewControllerB.viewModel.model = newModel; // passes new data along for B to display
我想要驗證這個任務正在發生,但viewModel
屬性是隻讀的。 viewModel由viewController的init方法初始化。
我怎麼可以在這裏嘲笑viewModel?
我可以部分模擬viewControllerB返回一個模擬viewModel
,然後我驗證但https://github.com/jonreid/OCMockito/issues/38說部分模擬已被刪除。爲什麼?!
中的必要更改是的好點 - 我在一分鐘內使用故事板,所以我讓iOS處理我的視圖控制器實例。這是它如此痛苦的部分原因:我無法定義一個單獨的'init',我希望傳入的數據被傳入。 – fatuhoku