我正在测试的课程中有两种方法:
- (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:
使用在我的测试用例类中调用方法的方法来调配该方法,并对该方法调用设置期望。但是,当调用 swizzled 方法时,self
指向被测类而不是我的测试用例。我可以在我的测试类中保留缓冲区,然后在我的测试中检查这个缓冲区的内容,但我讨厌在生产代码中添加一些东西来支持测试。有没有人对如何测试这种行为有更好的建议?