2017-02-24 76 views
2

我想在我的單元測試中測試一些大小類特定的特徵,但是遇到了尺寸類未在awakeFromNib中正確設置的問題。當我運行該應用程序時,通過在屏幕上顯示所有內容後在LLDB中對其進行檢查,可正確設置該應用程序,但在進行單元測試時似乎無法觸發正在設置的大小類。何時正確設置了尺寸等級?

有沒有人有關何時設置特徵集合/如何觸發它的任何信息?

編輯:爲了清楚起見,這些是測試只是視圖,而不是它的ViewController的單元測試。所以我從它的筆尖加載視圖,然後對其執行測試。

我試過呼籲layoutSubviews()希望這會觸發某種尺寸級的設置,但它沒有奏效。當我在traitCollectionDidChange中放置斷點時,堆棧跟蹤中只有main,因此我不確定實際觸發了什麼。

+0

也許當它被添加到它的父 – dan

+0

請出示你有什麼試過。 – shallowThought

回答

1

我想通了。關鍵是,認爲需要有一個窗口的一部分,以便有它的尺寸規格更新,所以下面的代碼補救的情況:

let window = UIWindow() 

// "view" is the view you want the size class updated one 
window.addSubview(view)