2016-11-23 77 views
1

我試圖確保SDK作爲framework按預期工作。從框架中的Plist讀取單元測試

我爲此目的使用XCTests編寫了一些單元測試。我需要從Plist中讀取一些信息,但路徑總是以nil結尾。

我使用:

NSBundle *bundle = [NSBundle bundleForClass: [self class]]; 
NSString *path = [bundle pathForResource:@"aPList" ofType:@"plist"]; 

我已經得到了Plist通過構建階段複製。

+0

只是一個想法,是plist文件集對測試目標的目標依賴嗎? – OliverM

+0

@OliverM如果你是指目標會員,是的。 – Kheldar

+0

我發現該文件被複制到xctest結果中,但沒有被複制到框架本身(這正如我所料,因爲我認爲Plist應該由最終用戶開發人員添加)。出於測試目的,我已將它添加到框架目標中,但結果是可能的。不得不爲「真正編譯」添加一個目標,而爲「測試編譯」添加另一個目標聽起來是錯誤的。有沒有更好的選擇,也許在我正在編寫的代碼中訪問該包? – Kheldar

回答

0

您的SDK的用戶通常不會將plist添加到框架,而是添加到他們自己的應用程序(主包)中。 SDK中的一個類可以使用NSURL /路徑初始化到plist。這樣,[[NSBundle mainBundle] pathForResource:@"aPList" ofType:@"plist"]可以在單元測試和應用程序包中使用,以獲得SDK使用的plist路徑。

+0

實際上,這是我最初的做法,但是我發現它在我的測試中不起作用。 – Kheldar