2013-06-11 2 views
0

시험을 치고 일부 데이터를 확인하고 있습니다. 예상 데이터 문자열에 두 개의 \\이 들어있어 실패했습니다.두 개의 백 슬래시로 인해 오류가 발생하는 이유는 무엇입니까?

내 테스트 코드는 다음과 같습니다

actual_string.should eq 'Today is Tuesday.\n It is third day of the week.' 

이 코드를 실행하면, 나는 실제 데이터가 예상 데이터와 일치하지 않습니다 말하는 오류가 발생합니다. '\'여분의 슬래시 곳에서

'Today is Tuesday.\\n It is third day of the week.' 

확실하지 예상 데이터에서 오는 :

'Today is Tuesday.\n It is third day of the week.' 

예상되는 데이터는 다음과 같습니다

실제 데이터입니다. 이 문제를 어떻게 해결할 수 있습니까?

+4

큰 따옴표'''를 사용하십시오. 작은 따옴표로 묶을 때 어설 션의 백 슬래시는 리터럴 백 슬래시입니다. –

+0

@NeilSlater 대답입니다.;) – Stefan

+0

작은 따옴표와 큰 따옴표의 주된 차이점은 무엇입니까? 루비는 둘 다 지원합니까? –

답변

1

사용 "텍스트"- 따옴표 .... 다른 언어 (예를 들어, 파이썬, 자바 스크립트 등)과는 달리

0

는, 루비 인용 - 단일 및 이중 인용 문자열에 다른 이스케이프 시퀀스를 사용합니다.

작은 따옴표로 묶인 문자열은 \'\\ 만 지원합니다. 그 밖의 모든 것은 말 그대로 취급됩니다. 따라서 '\n'은 두 줄 문자 \n이 아니라 한 줄 문자입니다.

큰 따옴표로 문자열을 둘러싸, 새로운 라인 문자를 사용하려면

actual_string.should eq "Today is Tuesday.\n It is third day of the week." 

이 테스트를 수정합니다.

관련 문제