저는 GHUnit에서 프레임 워크를 작성하고 단위 테스트를 작성해 왔습니다. 내 Framework의 접근 자 메서드 중 하나가 NSInteger를 반환합니다. CLI와 GUI 간의 NSInteger 차이점은 무엇입니까?
나는이 같은 테스트에서 예상되는 가치를 주장 :GHAssertEquals(1320, request.port, @"Port number should be 1320");
이 주장은으로 전달하는 AppKit의 UI 기반의 프론트 엔드 내 테스트를 실행.
그러나 하드 코드 된 1320을 (NSInteger)
으로 입력 캐스트하지 않으면 명령 줄에서 테스트를 실행할 때 형식이 일치하지 않습니다. 정수가 컴파일러에 의해 해석되는 방식의 차이를 일으키는 원인은 무엇입니까? xcodebuild는 하드 코드 된 정수에 대해 다른 데이터 유형을 사용하는 명령 줄에 있습니까?
컴파일러는 1320과 같은 상수에 대해 'int'를 선택합니다. 이것은 10 진 상수이며 접미사가없고 'int'의 최소 지정된 범위 내에 들어갑니다. – dreamlax
네 말이 맞아! Xcode에서 유니버설 바이너리를 작성하고있었습니다. 어떤 경우 든 데이터 유형에 대해 명시 적으로 표현하면 내 테스트가 덜 취약하기 때문에 좋은 결과를 얻었습니다. :) – d11wtq