我正在尝试使用XCTest编写一个test / s来驱逐drawRect方法的自定义实现的实现,并且我不确定如何执行此操作。
由于test / s,我希望编写的代码如下:
- (void)drawRect:(CGRect)rect
{
CGPoint startOfHorizontalLine = (CGPointMake(1.0f, 0.0f));
CGPoint endOfHorizontalLine = (CGPointMake(1.0f, 10.0f));
UIColor * lineColour = [UIColor colorWithRed:40.0f/255.0f green:34.0f/255.0f blue:34.0f/255.0f alpha:1.0f];
[lineColour setStroke];
UIBezierPath *horizontalLine = [UIBezierPath bezierPath];
[horizontalLine moveToPoint:startOfHorizontalLine];
[horizontalLine addLineToPoint:endOfHorizontalLine];
[horizontalLine stroke];
}
如果我需要使用模拟库,我已经对OCMock进行了一些研究。
感谢您的帮助。
答案 0 :(得分:1)
要对此进行测试,您可能最好将正文拉出到构建路径或配置当前绘图上下文的方法。然后测试变得相当简单:
如果这不可行,那么你可能会看到更像黄金大师测试的东西,在那里你可以画出看起来正确的东西,祝福那些黄金大师&#34 ;通过将绘图输出保存为图像,然后设置测试套件以重新绘制应该是相同图像的内容并比较两者。如果它没有相同,则测试失败。