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