MWB*_*MWB 5 java testing android canvas draw
如何测试在画布上绘制内容的方法。例如,对于 Android 应用程序,我有以下代码:
@Override
public void draw(Canvas canvas) {
canvas.drawRect(rect, paint);
}
Run Code Online (Sandbox Code Playgroud)
这当然是一个非常简单的例子,但仍然是:我如何测试是否Rect绘制了正确的结果?换句话说,如何检查 UI 是否显示正确的内容。
我想我可以检查屏幕上的所有像素,看看它们是否具有正确的属性,但我想这是一种非常幼稚的方法:)
基本上,您不会在单元测试中测试您自己没有实现的功能。
您编写单元测试以确保发生预期的调用。并且预期的参数会传递给此类库方法。
然后,稍后,您可能会对端到端功能进行手动测试。
编辑:这实际上取决于您的目标。如果您想通过单元测试获得最大的代码“功能”覆盖率,那么您的整个设计需要为此做好准备。
当然,有时使用“库调用”背后的实际功能很容易(当您可以轻松测试结果时)。但是拥有真正的画布并进行“真实绘图”可能需要您为任何类型的测试运行相当多的“环境”。因此,我个人会尝试隔离我的所有逻辑,以便它变得易于测试,然后确保我有有效的方法来稍后测试最终结果。