测试自定义视图的 onMeasure/onLayout/onDraw 方法的好方法是啥?
Posted
技术标签:
【中文标题】测试自定义视图的 onMeasure/onLayout/onDraw 方法的好方法是啥?【英文标题】:What is a good way to test the onMeasure/onLayout/onDraw methods of a custom View?测试自定义视图的 onMeasure/onLayout/onDraw 方法的好方法是什么? 【发布时间】:2015-02-01 12:32:18 【问题描述】:我刚刚编写了一个自定义 View 类,除其他外,它允许开发人员轻松设置边框(例如setBorderWidth
、setBorderColor
、setBorderWidthLeft
等)。我通过覆盖 onMeasure
/onDraw
来做到这一点,并且我想测试 View 是否正确绘制了这些边框。
理想情况下,我想要比单元测试更高级别的东西:基本上我想强制执行,如果我设置边框,它们会按预期绘制;如果我不设置它们,它们就不会被绘制;如果我更改它们,则会绘制新边框并且不再可见旧边框。这让我知道我的观点在高层次上发挥作用。
我考虑过的事情:
-
使用 Robolectric 单独获取视图并使用模拟 Canvas 手动调用 onDraw(但不测试失效)
制作一个 Activity 测试用例并以某种方式保存 Activity 的屏幕截图并以编程方式对其进行分析。
这些对我来说都不是很好,但我倾向于 2)。还有其他想法吗?
【问题讨论】:
【参考方案1】:对于测试onDraw
、onLayout
和onMeasure
screenshots-tests-for-android 是相当不错的选择。
【讨论】:
以上是关于测试自定义视图的 onMeasure/onLayout/onDraw 方法的好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章