2015-08-17 62 views
2

我正在玩Xcode 7 beta中引入的新UI測試。在我的一個UI測試場景中,我需要添加一些代碼,這些代碼與我的測試文件setup()中的Simulator -> Reset Content and Settings相同,它是XCTestCase。復位是否可以通過編程完成?或者,我們可以在測試代碼中模仿工廠重置對應用程序的影響嗎?Objective C - 在測試文件中以編程方式「重置內容和設置」

回答

1

不完全編程,但你可以寫一個bash要刪除的文件:

${user.home}/Library/Application Support/iPhone Simulator/${simulator.version} 

這將清除模擬器的設置。

我的理解是,你將無法從你的應用程序,因爲應用程序是沙箱。

0

通常人們都在使用shell腳本或蘋果腳本。但是,使用硬重置絕對沒有必要。

  1. 您不應該關心其他應用程序中的數據,您應該只關心應用程序中的數據。您可以隨時在測試開始時刪除您的應用程序數據(文件,用戶默認值)。那麼,爲什麼你應該做一個硬重置?

  2. 更好的解決方案是嘲笑。如果你的測試假設,例如NSUserDefaults中的一些變量沒有設置,你不必關心存儲在那裏的實際值,只是模擬你的實現使用的方法(例如objectForKey:並讓它返回nil

+0

重置內容和設置提供了一種簡單的方式來模仿一整套真實生活中的用例,它不僅爲我擦除了鑰匙串數據(通過應用程序卸載持久保存),還可靠地呈現「允許MyApp訪問您的相機?「或」允許MyApp向您發送通知?「系統彈出窗口,如果用戶回覆一次,它將再也不會顯示 – SeaJelly

+0

我需要能夠測試一個空的聯繫人列表,並且沒有對我的應用的聯繫人權限。 –

相關問題