java - 如何测试绘制到 Canvas 的方法?

标签 java android testing canvas draw

如何测试在 Canvas 上绘制内容的方法。例如,对于一个 Android 应用程序,我有以下代码:

@Override
public void draw(Canvas canvas) {
    canvas.drawRect(rect, paint);
}

这当然是一个非常简单的示例,但仍然是:我如何测试是否绘制了正确的 Rect?换句话说,如何检查 UI 是否显示正确的内容。

我想我可以检查我屏幕上的所有像素以查看它们是否具有正确的属性,但我想这是一种非常幼稚的方法:)

最佳答案

基本上,您不会测试您未在单元测试中实现的功能。

您编写单元测试以确保预期的调用发生。并且预期的参数被传递给这样的库方法。

然后,稍后,您可能会对端到端功能进行手动测试。

编辑:这真的取决于你的目标。如果您想通过单元测试分别获得最大的代码“功能”覆盖率,那么您的整个设计都需要为此做好准备。

当然,有时很容易使用“库调用”背后的实际功能(当您可以轻松测试结果时)。但是拥有真正的 Canvas 并进行“真正的绘图”可能需要您为任何类型的测试运行相当多的“环境”。因此,我个人会尝试隔离我所有的逻辑,以便测试变得容易,然后确保我有有效的方法来稍后测试最终结果。

关于java - 如何测试绘制到 Canvas 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53681542/

相关文章:

java - 在java中验证xml w.r.t XSD

java - 交互式图表和显示选项

java - onPreviewFrame 未被调用

javascript - 错误:找不到模块 Mocha

android - 连续执行测试脚本出现空指针异常

java - WebDriver:如何检查页面对象 Web 元素是否存在?

java - java中通过Rally Rest API查询获取Project的ObjectID

java - FFT 返回变为 NaN 的大值

java - 有人有带有简单数据库的小型 Android 项目吗?

c# - 指定操作区域并验证位置是否在该区域内