我在一個類的兩種方法我測試:驗證方法調用目標C與基本數組/指針參數
- (NSUInteger)sendBuffer:(uint8_t *)buffer length:(NSUInteger)length;
- (BOOL)sendFormattedCommandForAddress:(uint8_t)address
withData:(uint8_t)data
andCommandType:(ZKZSensorCommandType)commandType;
-sendFormattedCommandForAddress:withData:andCommandType:
構建一個char
陣列,並傳遞指向此數組-sendBuffer:length:
。此數組的內容取決於address
,data
和commandType
。在我的測試中,我想驗證是否構建了正確的數組並傳遞給-sendBuffer:length:
。 OCMock不會讓我對uint8_t *
的觀點設定一個期望。 OCMockito/OCHamcrest不會讓我使用部分模擬(還)。我試着用-sendBuffer:length:
方法調用一個方法,在我的測試用例類中調用一個方法,並設置對該方法調用的期望。但是,當調用方法調用時,self
指向被測試的類而不是我的測試用例。我可以在被測試的類中保存緩衝區,然後在我的測試中檢查這個緩衝區的內容,但是我討厭爲生產代碼添加一些東西來支持測試。有沒有人有更好的建議如何測試這種行爲?