我有一个具有类方法的UIColor类别
+(UIColor *)appropriateTextColorForBackground:(UIColor *)background
{
//...get brightness value
if (brightness > 127.5f)
return [UIColor blackColor];
else
return [UIColor whiteColor];
}我想在我的测试类中使用OCMockito进行测试
-(void)testAppropriateColorWithBlackShouldReturnWhiteColor
{
Class color = mockClass([UIColor class]);
[color appropriateTextColorForBackground:black];
assertThat([color testColorWithColor:black], is([UIColor whiteColor]));
}但是我得到了一个错误
test failure: -: *** -[NSProxy doesNotRecognizeSelector:appropriateTextColorForBackground:] called!我遗漏了什么?看起来这应该行得通。
发布于 2014-07-08 06:34:39
我同意Bryan的观点,你在这里不需要mock,因为你想测试你的类别方法的实现。举个例子:
-(void)testAppropriateColorWithBlackShouldReturnWhiteColor
{
UIColor *appropriateColor = [color appropriateTextColorForBackground:black];
assertThat(appropriateColor, is(equalTo([UIColor whiteColor])));
}您可能还想对相反的颜色进行类似的测试。我可能会走得更远,并将使用变化边缘的颜色来计算亮度(而不是黑白)。然而,有些人(不是我)可能会认为这会暴露实现细节,这通常是编写单元测试时要避免的事情。
https://stackoverflow.com/questions/24601491
复制相似问题