测试自定义View的onMeasure/onLayout/onDraw方法有什么好方法?

Fox*_*chu 6 android android-custom-view android-layout android-testing

我只写了一个自定义的视图类,除其他事项外,允许开发者轻松地设置边界(如setBorderWidth,setBorderColor,setBorderWidthLeft,等).我通过覆盖onMeasure/来做到这一点onDraw,我想测试View正确绘制这些边框.

理想情况下,我想要一个比单元测试更高级别的东西:基本上我想强制执行,如果我设置边框,它们按预期绘制; 如果我不设置它们就不会被绘制; 如果我更改它们,则会绘制新边框并且不再显示旧边框.这让我知道我的观点正在高水平运作.

我考虑过的事情:

  1. 将视图与Robolectric隔离并使用模拟Canvas手动调用onDraw(尽管不测试失效)
  2. 制作一个Activity测试用例并以某种方式保存Activity的屏幕截图并以编程方式对其进行分析.

这些对我来说都不是很好,但我倾向于2).还有其他想法吗?

tha*_*sma 0

对于测试来说,onDrawscreenshots -tests-for-android是一个不错的选择。onLayoutonMeasure