我正在嘗試爲具有傳統C++庫依賴項的iOS應用程序編寫測試。舊式庫具有初始化例程和靜態變量,每個應用週期都必須運行/設置一次。iOS應用程序測試靜態庫初始化
我創建了一個工作正常的測試目標。我的測試目標設置爲通過Bundle Loader將我的應用程序用作測試主機。這將啓動iOS應用程序,然後使用[SenTestCase調用測試]來運行測試。鑑於此設置,我希望讓應用程序初始化庫並讓測試以「庫已初始化」狀態運行。這似乎符合Apple Application Test範例。但是,在運行測試時,在啓動應用程序期間初始化的遺留庫的靜態變量爲NULL。沒有用戶代碼會重置變量。
我期待我的應用程序測試能夠訪問我的應用程序的靜態變量。有什麼我可以配置允許這個?我錯過了什麼嗎?
爲了澄清,麻煩的靜態變量是在鏈接的C++庫。應用程序和單元測試似乎沒有共享相同的應用程序範圍。
除了這個可以訪問你的應用的單元之外,你還有其他單元測試嗎? – 2012-08-19 02:50:26
我可以在我所有其他測試中使用該應用。只有C++庫中的靜態變量會導致問題。 – HatAndBeard 2012-08-20 14:49:10
我也遇到過這個問題。我相信問題是有2個版本的靜態變量正在創建; 1在您的測試二進制文件中,1在您的應用程序二進制文件爲了澄清,我相信這是所有靜態變量的問題,而不僅僅是C++。 – Tylerc230 2012-11-09 19:05:04