2009-04-25 3 views
1

nUnit을 사용하여 특정 문화권의 출력 (통화 형식)을 테스트했지만 다음과 같은 결과가 나타납니다.이 두 문자열의 차이점은 무엇입니까?

Fail: Formatting currency amount 
    String lengths are both 11. Strings differ at index 2. 
    Expected: "12 765,87 €" 
    But was: "12 765,87 €" 
    -------------^ 

문자열 간의 차이점을 볼 수 없습니다. 우리의 예상 결과는 "공백"문자를 사용합니다.

테스트를 통과하기 위해 허용 된 결과에 넣을 수있는 다른 공백 문자가 있습니까?

그런데 시험 한 배양 물은 fr-FR이다.

편집 : 감사합니다. 아담 당신은 유니 코드 문자로 자리를 잡고 있습니다. 우리는 예상 결과를 변경했으며 이제는 각 단위 테스트가 통과합니다.

답변

5

다른 유형의 공백 일 수도 있습니다. 유니 코드에는 많은 다른 것이 있습니다 space characters. 정수로 문자를 캐스팅하여 색인 2의 코드 포인트를 확인하여 답을 얻으십시오.

귀하의 코멘트에 대한 응답으로 편집

는 코드 포인트 (160)는 non-breaking space이다. 당신은 당신의 소스 코드에 enter it directly 수 있습니다 (예 : Alt 키 Windows에서 숫자 키패드의 + 0160) 또는 이스케이프 시퀀스 사용

// U+20AC is the Unicode code point for the euro sign 
string expected = "12\u00A0765,87 \u20AC"; 
+0

공백으로 보이는 문자 160 ... 어떻게 이것을 우리의 "예상 된"결과에 통합 할 수 있습니까? –

1

대부분의 경우는 비어있는 캐릭터이다를 수 있지만 공간, 라벨을 피하기 위해 단어 줄 바꿈 기능을 사용할 때 두 자리 숫자를 끊을 수 있습니다.