2016-09-02 59 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跟蹤器中存檔嗎? –