2013-12-09 37 views
0

我有下面的代碼在我的單元測試:測試目標中的用戶定義構建設置?

#ifndef SERVER_TEST 
    NSLog(@"\n\n!!!--- YOU ARE RUNNING TESTS IN STUB MODE ---!!!\n\n!!!--- Server Responses will be stubbed ---!!!\n\n"); 
#else 
    NSLog(@"\n\n!!!--- YOU ARE RUNNING TESTS IN LIVE MODE ---!!!\n\n!!!--- Server Responses will be live ---!!!\n\n"); 
#endif 

SERVER_TEST在我的測試目標的用戶定義的設置生成設置下定義。

當我運行我的測試時,#ifndef SERVER_TEST總是返回True。任何想法爲什麼?

感謝?

+0

您是否嘗試過[使用自定義配置](http://www.innovaptor.com/blog/2013/09/02/xcode-preprocessor-macros-for-test-code.html)? – neilco

+0

不,我沒有。與Grzegorz的答案相比,使用自定義配置有什麼優勢? – dornad

+0

如果您想在您的應用程序代碼中使用相同的定義進行條件編譯,例如在測試運行期間進行自定義日誌記錄,則自定義配置最適合管理該定義。 – neilco

回答

1

您應該將此標誌保留爲預處理器宏而不是用戶定義的設置。

+0

工作正常!是否有任何理由這樣做,而不是用戶定義的設置? – dornad

+0

用戶定義的設置更適用於保存變量值 - 您可以通過$(VARIABLE NAME)從代碼讀取它們。 #ifdef是預處理宏,所以應該使用它。您可以將它們組合在一起,並在UserDefinedSettings中定義變量值,並在預處理器宏中將它們用作$(VARIABLE_FROM_USER_DEFINES)。用戶定義的設置不會自動轉換爲預處理宏,直到您在宏段中定義它們。 –

相關問題