0
我有一個SenTest類,我試圖寫它使用類別來覆蓋控制器類中的方法。我想讓我的模擬控制器類調用SenTest類中的一個方法來確定如何爲各種測試工作。SenTest,Objective-C,類別奇怪
例如:
- 設置在命名爲testFoo方法的變種。
- 在testFoo中,調用我的模擬控制器的重寫方法。
- 讓它回調到SenTest單例以找出testFoo的行爲。
這是可能的,還是我是白癡?
我有一個SenTest類,我試圖寫它使用類別來覆蓋控制器類中的方法。我想讓我的模擬控制器類調用SenTest類中的一個方法來確定如何爲各種測試工作。SenTest,Objective-C,類別奇怪
例如:
這是可能的,還是我是白癡?
原來這樣做的訣竅是在類別代碼中創建關聯引用,而不是在SenTest情況下。
因此,例如,在類聲明的:
-(void)fakeMethodToSetTestData:(NSDictionary *)data;
而且在這個方法設置的關聯參考存儲你的數據「相關」與「自我」。
在您的測試用例中調用此對象,傳遞您的數據。
然後在您的測試案例,請致電:
-(void)realMethodInCategoryWhichIsBeingOverridden;
而在你的類此方法的實現,從你的第一種方法設置的關聯參考檢索數據。
這將允許您在控制器上設置測試數據,以便您可以劫持代表鏈,例如,防止第二種方法進入網絡並將測試數據返回到控制器的代碼中。
這是什麼類別?把控制器變成模擬?也就是說,覆蓋測試單身人士的位呢? – 2011-04-20 22:24:34
該類別是覆蓋我的控制器中建立網絡連接的方法。我想在單元測試中避免這種情況。 – Genericrich 2011-04-21 11:17:04
我想我可能想在這裏使用「關聯引用」,這可以讓我在被測試的控制器上設置測試參數字典,然後在類別覆蓋方法中檢索它以獲取適當的數據開一個給定的測試。今天會試試這個。 – Genericrich 2011-04-21 11:23:13