[英]isKindOfClass doesn't match across targets when using a pod
我遇到了涉及isKindOfClass
檢查的單元測試代碼問題。 關於這個主題存在很多問題,答案建議:
-ObjC
包含在“其他鏈接器標志”中。 它是。 .m
文件未添加到測試目標。 他們不是。 為了確保沒有奇怪的情況,我創建了一個新項目。 一世:
"TwistedOakCollapsingFutures"
pod install
-ObjC
存在於兩個目標中 [TOCFuture futureWithResult:@1]
給AppDelegate.m
XCTAssert([AppDelegate.makeFuture isKindOfClass:TOCFuture.class], @"")
到示例測試 基本上我不知道為什么這不起作用。 更奇怪的是,如果我反對現有的答案並在測試目標中包含AppDelegate.m
,測試就會開始通過。
到底是怎么回事? 我想將源文件包含在測試目標中,還是我不應該?
這個答案為我解決了它https://stackoverflow.com/a/27165120/2777364 。
簡而言之,您不應將pod與測試目標鏈接,並且應該為至少一個其他pod創建單獨的鏈接以供測試目標強制生成配置集。
target 'MainTarget' do
pod 'PodYouTryToTest'
end
target 'Tests' do
pod 'AtLeastOneOtherPod'
end
上面的答案是解決這個問題的“正確方法”。 作為一個快速的解決方法,我可以提出一個方法:
Class getBundleDependentClass(Class class) {
return NSClassFromString(NSStringFromClass(class));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.