2017-02-09 10 views
0

이전 Rails 앱 (3.2.22)에서 Test :: Unit을 사용 중이며 외부 API에 맞는 서비스 클래스를 테스트하려고합니다.테스트에서 JSON 조명기를 올바르게 파싱 할 수 없습니다.

저는 webmock을 사용 중이며 json 파일 고정 장치가 작동하려고하고 있지만 json 파일에서 구문 분석 오류가 계속 발생합니다.

내 테스트 스텁은 다음과 같습니다

order_response.json 파일은 다음과 같습니다
response_data = fixture_file_upload('easypost/order_response.json') 
stub_request(:post, 'https://api.easypost.com/v2/orders'). 
    to_return(:status => 200, :body => File.read(response_data)) 

:

JSON::ParserError: 757: unexpected token at '{'mode':'test','reference':'Order','is_return':false,'options':{'currency':'USD','label_date':null}}' 
: 나는 테스트를 실행하면

{ 
    'mode':'test', 
    'reference':'Order', 
    'is_return':false, 
    'options':{'currency':'USD','label_date':null} 
} 

, 나는 구문 분석 오류가

무슨 일 이니?

UPDATE :이 필요한 이유

{ 
    "mode":"test", 
    "reference":"Order", 
    "is_return":false, 
    "options":{"currency":"USD","label_date":null} 
} 

는 사람이 설명 할 수 없습니다 :

이는 JSON 파일에 따옴표를 사용하여 작업이 있으십니까? fine specification 가입일

답변

1

:

A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes.

및 및 객체는 키 문자열 키/값 쌍의 집합이다

:

enter image description here

수단이 그

{ 
    'mode':'test', 
    'reference':'Order', 
    'is_return':false, 
    'options':{'currency':'USD','label_date':null} 
} 

은 JSON 문자열이 큰 따옴표와 큰 따옴표 만 사용하기 때문에 JSON이 아니며 JSON처럼 보이는 것입니다. 문자열에 큰 따옴표로 바꿀 때 :

{ 
    "mode":"test", 
    "reference":"Order", 
    "is_return":false, 
    "options":{"currency":"USD","label_date":null} 
} 

그러면 JSON을 사용하면 모든 것이 작동합니다.