1
我一直在構建一個框架,並在GHUnit中編寫單元測試。我的一個框架的訪問器方法返回一個NSInteger。CLI和GUI之間的NSInteger區別?
我斷言在測試的預期值是這樣的:
GHAssertEquals(1320, request.port, @"Port number should be 1320");
當運行我用了AppKit UI基於前端這一說法通過測試。
但是,當我在命令行上運行我的測試時,除非將類型不匹配的硬編碼的1320類型化爲(NSInteger)
,否則會導致類型不匹配。什麼導致編譯器解釋整數的方式有所不同?命令行上的xcodebuild是否使用硬編碼整數的不同數據類型?
編譯器會爲等於1320的常量選擇「int」。它是一個十進制常量,沒有後綴,並且符合'int'的最小指定範圍。 – dreamlax 2010-05-27 04:12:28
你是對的!我在Xcode中構建了一個通用二進制文件。如果我在任何情況下都明確了數據類型,那麼我的測試就不那麼脆弱,所以它是一個很好的發現:) – d11wtq 2010-05-27 04:16:52