2013-05-30 2 views
1
나는 그것이 일치의 알 수 있도록이
doh.t(formatedValue.localeCompare("16,91 $CA") === 0, "incorrect french formatting") 

formattedValue 도장단위 테스트가 실패 비교

실패하는 이유

확실하지가 확실히 "16,91 $ CA"입니다. Bu twhen 구문에 === 0을 추가하려고합니다. "이진 연산 인수가 부울 입력에 할당 할 수 없습니다."

나는이 작업을 수행하지 않으며 true/formatedValue.localeCompare ("56,96 $ CA") === 0 일 때 거짓인가?

+2

이유는 전혀 localeCompare을 사용하고 있습니까? 이걸 재현 할 수 없었습니다. 최소의 테스트 케이스를 제공 할 수 있습니까? 예를 들어'doh.t ("foo bar".localeCompare ("foo bar") === 0, "wrong!")'나를 위해 잘 작동합니다 ... –

+0

사용하면 문제가 될지 모르겠습니다. === 또는 .localeCompare – PositiveGuy

+1

글쎄, 의도는 중요한 이유입니다. localeCompare는 문자열을 비교 (정렬/알파벳순으로)하고 동등 할 때 0 (거짓 값)을 반환하기 때문에'=='또는'=== '을 사용해야합니다. 더 간단합니다.'= =='처음에는 실제로 어떤 문자열이 더 크거나 작은 지 신경 쓰지 않기 때문에. –

답변

0

localeCompare은 문자열 비교를 위해 설계된 것으로 평등성 테스트가 아닙니다. 비교해 보면, 문자열이 다른 문자열보다 크거나 작은 지 테스트하는 것입니다. 이것은 정렬에 유용합니다. 당신이 문자열을 정렬 할하지 않기 때문에, 평등에 대한 테스트는 아마 간단하다 :

doh.t(formatedValue === "16,91 $CA", "incorrect french formatting"); 

또는 더 나은 : 당신은 평등을 테스트하려는 경우

doh.is(formatedValue, "16,91 $CA", "incorrect french formatting"); 
관련 문제