ITO SOFT DESIGN Inc. http://www.itosoft.com/
Itotake Katsuyoshi [email protected]
2012年2月10日
Surikae 通过块替换方法。
它对 Objective-C 的单元测试很有帮助。
将 Surikae 文件夹导入您的项目中。
使用 NSObject 的 +surikaeWithSelector:surikae:context 来替换类的选择器。
这会用 surikae 块替换类的选择器。
如果您想替换实例方法,使用 -surikaeWithSelector:surikae:context of NSObject。这个效果只在上下文块中有效。
[NSDate surikaeWithSelector:@selector(date)
surikae:^()
{
return [NSDate dateWithYear:2012 month:2 day:17 hour:0 minute:0 second:second];
}
context:^()
{
[self.stopWatch start];
second = 1;
[self.stopWatch stop];
ASSERT_EQUAL_DOUBLE(1.0, self.stopWatch.time);
}
];
如果您需要更长时间的效果,使用 +registedSurikaeWithSelector:surikae of NSObject。
在这种情况下,IUTSurikae 类保留了 UITSurikae 对象。
当您需要检索所有已替换的方法时,调用 +[NSObject removeAllSurikaes]。
- (void)setUp
{
[super setUp];
second = 0;
[NSDate registedSurikaeWithSelector:@selector(date)
surikae:^()
{
return [NSDate dateWithYear:2012 month:2 day:17 hour:hour minute:minute second:second];
}
];
self.stopWatch = [StopWatch new];
}
- (void)tearDown
{
self.stopWatch = nil;
[NSDate removeAllSurikaes];
[super tearDown];
}
请参阅示例项目
BSD 许可协议
hayashi311: 实现块