0
現在我已經在一些項目中被這個問題困住了,所以我很想找到一個好的解決方案。測試中@testable導入對象的運行時類型檢查
考慮以下情形:
- 我已經在我的叫
MyObject
的應用程序的目標,這是在MyBusinessLogicObject
使用定義的對象。 - 在
MyBusinessLogicObjectTests
,我有
@testable import
編我的應用程序的軟件包,但需要拉一個對象了非泛型集合後,有條件地投:import XCTest @testable import MyApp class MyBusinessLogicObjectTests: XCTestCase { var bizLogicObject: MyBusinessLogicObject! // setUp() etc. func testStuff() { guard let result = bizLogicObject.someOrderedCollectionProperty.first as? MyObject else { XCTFail() return } // more test code here } }
的問題是,即使我可以看到bizLogicObject.someOrderedCollectionProperty.first
的類型是MyObject
有條件轉換失敗。
我知道這是因爲當你@testable import
這樣,你的應用程序中的所有類型都會被複制。因此,運行時檢查實際上最終是針對兩種不同的類型,這就是它失敗的原因。
有誰知道如何在測試中獲得有條件轉換以通過,在哪裏需要轉換爲在您的應用程序中定義的類型?