2016-09-02 34 views
0

好日子我的开发伙伴,Android Studio:调试junit测试:错误的值分配

我已经在Android Studio中编写了我的第一个单元测试。然而,这种行为很奇怪,或者我做错了什么。

在这个测试中,我只需创建一个X = 3和y = 0的android.graphics.PointF。但是从记录器中可以看出,它始终是0.下面是一个截图。我目前从记录下一行,你可以在检测控制台看到: 信息:U2:X = 0.0是= 0.0

Oh, I'm not allowed to embed images on SO, so please click here.

任何事情我做错了吗?谢谢。

回答

1

OK,这种行为是因为:

默认情况下,Android的插件-in for Gradle针对android.jar库的修改版本执行本地单元测试,该库不包含任何实际的代码。相反,从你的单元测试中调用Android类的方法会引发异常。

从这里:https://developer.android.com/training/testing/unit-testing/local-unit-tests.html#mocking-dependencies

这说明了一切。所以我们需要做的就是模拟PointF的所有方法。 顺便说一下,设置公共字段.x和.y确实起作用,因为它们后面没有setter,所以不会引发异常。

其实这一切都只是奇怪。

0

您可以通过设定X构造器y之后修复它,并...

PointF f = new PointF(12f, 15f); 
     f.y = 12f; 
     f.x = 15f; 

enter image description here

+0

你说得对。对此有何解释? –

+0

我不知道,但我有同样的问题与Rect和RectF类,这也是在Android的图形 –

+0

如果没有什么我失踪,这是一个错误。我们应该在android bug跟踪器中存档吗? –