我使用OCMock來幫助測試驅動開發我正在爲使用Xcode的iPad應用程序進行測試。我有測試這樣的代碼:編譯器混淆模擬對象
id mock = [OCMockObject mockForProtocol:@protocol(SomeProtocol)];
Vector direction = { 1.0f, 2.0f, 3.0f };
[[mock expect] setDirection:direction];
當我嘗試編譯,我得到警告和錯誤是這樣的:
warning: multiple methods named 'setDirection:' found
error: sending'Vector' to parameter of incompatible type
'UISwipeGestureRecognizerDirection' (aka 'enum UISwipeGestureRecognizerDirection')
顯然編譯器不能確定什麼類型的對象的模擬應該是。我不知道如何指定它應該處理來自SomeProtocol協議的setDirection方法,而不是來自另一個類的setDirection方法。
可以做些什麼來使這樣的測試案例成功?