반응형
XCTAssertEqual이 두 문자열 값을 비교하지 못합니까?
문자열 확장을 테스트하기 위해 간단한 단위 테스트를 추가했습니다. 그러나 그것은 실패합니다. 내가 여기서 뭘 잘못하고 있니?
내가 아는 XCTAssertEqual
것은 객체 자체가 아니라 값을 테스트하는 것입니까?
세 번째 줄 btw는 문자열이 같지만 그렇지 XCTAssertEqual
않다고 말합니다.
- (void) testInitialsFromFullname {
NSString *firstNickName = @"Mike Kain";
NSString *expectedResult = @"MK";
NSLog(@"Equal:%@", [[firstNickName initialsFromString] isEqualToString:expectedResult] ? @"YES" : @"NO");
XCTAssertEqual(expectedResult, [firstNickName initialsFromString], @"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);
}
의 문서에서 XCTAssertEqual
:
a1이 a2와 같지 않을 때 실패를 생성합니다. 이 테스트는 C 스칼라, 구조체 및 공용체에 대한 것입니다.
XCTAssertEqualObjects
( isEqual:
내부적 으로 사용하는 ) 또는 다음과 같은 것을 사용해야합니다 .
XCTAssertTrue([[firstNickName initialsFromString] isEqualToString:expectedResult],
@"Strings are not equal %@ %@", expectedResult, [firstNickName initialsFromString]);
누군가에게 도움이 될만한 비슷한 문제가 있습니다.
문자열을 반환하는 Float 확장 함수가 있습니다. 다음 테스트는 실패합니다.
testValue = 0.01
XCTAssertEqual(testValue.formattedForCost(), "0,01 €")
다음 메시지와 함께 :
Assertions: XCTAssertEqual failed: ("Optional("0,01 €")") is not equal to ("Optional("0,01 €")")
다소 성가신 일입니다. 그러나 유니 코드 중단없는 공백 문자 를 사용하도록 테스트를 변경하면 발견했습니다 .
XCTAssertEqual(testValue.formattedForCost(), "0,01\u{00a0}€")
통과합니다.
참고 URL : https://stackoverflow.com/questions/19464261/xctassertequal-fails-to-compare-two-string-values
반응형
'developer tip' 카테고리의 다른 글
중첩 함수가 외부 함수의 변수에 액세스 할 수 있지만 수정할 수없는 이유 (0) | 2020.11.11 |
---|---|
SQL에서 같은 줄에 정수 변수와 문자열 인쇄 (0) | 2020.11.11 |
IDEA 편집기에서 다음 항목을 어떻게 선택할 수 있습니까? (0) | 2020.11.10 |
ImportError : win32com.client라는 모듈이 없습니다. (0) | 2020.11.10 |
와일드 카드 하위 도메인 및 정적 하위 도메인 용 가상 호스트 (0) | 2020.11.10 |