单元测试自定义UIView

liv*_*v a 7 unit-testing objective-c

我有一个使用CoreGraphics框架的图形应用程序,

虽然我有模型文件的单元测试套装我似乎无法理解如何为我的自定义UIView创建单元测试,

我的目标是设置视图的基本属性并查看绘制函数结果,尽管在我的setter中我调用了:[self setNeedsDisplay]; 我的'drawRect'函数没有从单元测试中调用,尽管它是从实际应用程序调用的

有没有办法在单元测试项目中绘制?测试ui项目的最佳实践/工具是什么?

谢谢

Jon*_*eid 3

测试绘图的一个简单方法是首先使绘图看起来像您想要的那样(所以没有 TDD)。然后进行测试,将绘图渲染为 PNG。使用 #if 条件在捕获基线 PNG 和与该 PNG 进行比较之间切换测试代码。

在新的操作系统版本中,渲染可能会略有变化。因此,请坚持使用单一操作系统进行基线图像测试。在需要时获取新的基线。

完成此类测试后,您就可以重构绘图代码。如果它呈现相同的图像,则您的最新更改是好的。如果存在差异,您必须就是否接受更改做出明智的决定。(如果这样做,请捕获新的基线。)

编辑:这些天,我不再手动完成所有这些工作,而是使用iOSSnapshotTestCase。当测试失败时,它不会仅仅给出“出了问题”的结果,而是会保存图像。这样,您就可以进行并排比较,而无需手动启动应用程序并导航到相关视图。它还模拟以不同方向渲染到不同设备,这对于检查自动布局来说非常有用。