2013-03-19 60 views
1

是否有任何內置於Robotium Solo 4.0中的方法來更改系統時鐘?使用Robotium Solo 4.0更改系統時鐘

據我所知,我可能會編寫一些代碼來打開設置應用程序,導航到時鐘並更改時間,但是如果Robotium內置了某些內容來執行此操作,它將非常有用。根據操作系統版本的不同,設置菜單的差別非常大,所以編寫一種方法可以在所有Android操作系統上正確執行此操作。

我在我的應用程序中有幾個日期選擇器,只允許您在工作時間選擇日期,所以我需要僞造我的手機的系統時間在日期選擇器的正常工作時間內,以允許我選擇任何內容。

如果沒有內置任何內容,並且有人已經編寫了自己的robotium腳本來導航到設置應用程序,我很感謝您分享您的方法。

在此先感謝。

回答

2

有幾個解決方案。

通過編程,你可以

只是因爲你不能更改手機時鐘很容易不排除你能夠改變你認爲營業時間容易,這樣你可以改變你的營業時間是基於當前時間,例如將其更改爲允許或不允許當前時間範圍,然後將其用作測試的基礎。這不是完美的,但它可以讓你測試你的代碼是否包含/排除,即使你沒有測試確切的時間範圍(儘管你應該能夠通過測試來檢查數據通常是正確的值,與之前的測試,這將可能給你提供足夠的保證。

或...

您可以設置使用命令從你的電腦,你如何去了解這個集成到您的測試是不可植根手機的日期(你將不得不設置日期運行測試設置日期運行測試等)。爲此,使用'adb shell date'命令(您可以在此處搜索其在stackoverflow中的用法)

+0

嘿保羅 - 謝謝你的回答如果沒有服務器團隊的幫助,他的第一個建議將無法工作,因爲「營業時間」在服務器上定義並在登錄時發送到應用程序。我喜歡你的第二個解決方案。在測試運行之前,我會編寫一個腳本來使用adb shell date命令。謝謝! – DiscDev 2013-03-22 14:07:27

+0

你當然可以在你的應用程序中添加一個特殊的模式,它不需要從服務器請求它,或者讓它可以讓服務器根據你發送的其他參數提供不同的數據。無論如何,這聽起來像選項2對你來說可能已經足夠了! – 2013-03-22 14:30:26

+0

我試圖避免在應用程序中添加任何特殊的「測試」代碼。我有一個「調試模式」,我可以利用這一點,但我只是討厭在應用程序中散佈大量測試特定的代碼。謝謝你的幫助! – DiscDev 2013-03-22 16:46:12

0

我大概可以寫一些代碼來打開設置應用,導航到時鐘並更改時

你無法與robotium做到這一點。 Robotium(和Robotium所基於的Instrumentation)只能訪問經過測試的應用程序。

說實話,沒有生根器無法以編程方式更改系統時鐘。如何改變它在根植設備上,你可以在這裏找到:Setting system time of ROOTED phone