【发布时间】:2021-05-28 14:18:52
【问题描述】:
以如下函数为例:
public static float convertPixelsToDp(float px, Context context){
return px / ((float) context.getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT);
}
在上面的函数中,px 被context.getResources().getDisplayMetrics().densityDpi 和DisplayMetrics.DENSITY_DEFAULT 改变。
如果开发人员使用相同的模拟器,则可以编写跨开发人员机器运行的测试。
话虽如此,有没有办法在测试框架内配置模拟设备或显示指标的默认值,从而产生与后者相同的结果?
【问题讨论】:
-
集成测试与单元测试有点不同,这种依赖于设备的 API 通常不适合使用 espresso 等仪器框架进行行为测试。但是,如果您希望根据平台对此类实现进行单元测试,那么您可以查看 robolectric - robolectric.org
-
如何跨机器使用测试“不可扩展或不正确”?这对我来说似乎是可扩展性的定义。如果此答案对您不起作用,我会编辑问题以添加更多信息。
-
如果可能的话,可以举个例子。如果它对我来说似乎很模糊,我怀疑我是唯一的一个。顺便说一句,你以 3 个代表击败了我。 GRRRR!!!
标签: android integration-testing