Sinon: fakeServerλŠ” 1.17.4μ—μ„œ .respond (500)둜 μ†μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

에 λ§Œλ“  2016λ…„ 05μ›” 02일  Β·  35μ½”λ©˜νŠΈ  Β·  좜처: sinonjs/sinon

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

μ €λŠ” karma-sinon ν•˜κ³  있으며 항상 기본적으둜 Sinon의 μ΅œμ‹  버전을 μ„€μΉ˜ν•©λ‹ˆλ‹€. 버전 1.17.4κ°€ λ‚˜λ₯Ό μœ„ν•΄ 이것을 깨뜨린 것 κ°™μŠ΅λ‹ˆλ‹€.

this.server.requests[0].respond(500, { 'Content-Type' : 'application/json' }, JSON.stringify({}));

λ‚΄ Ajax ν˜ΈμΆœμ—μ„œ 였λ₯˜ 처리기λ₯Ό ν˜ΈμΆœν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ–΄λ–€ 이유둜 문제λ₯Ό λ””λ²„κΉ…ν•˜λŠ” 데 λ„μ›€μ΄λ˜λŠ” Githubμ—μ„œμ΄ λ²„μ „μ˜ νƒœκ·Έλ₯Ό 찾을 μˆ˜λ„ μ—†μŠ΅λ‹ˆλ‹€. ν•΄κ²° λ°©λ²•μœΌλ‘œ 1.17.3으둜 λ‹€μš΄ κ·Έλ ˆμ΄λ“œν•˜κ³  μ•ˆμ „μ„ μœ„ν•΄ λ‚΄ ν”„λ‘œμ νŠΈμ—μ„œ μˆ˜μΆ• 포μž₯을 μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.

  • Sinon 버전 : 1.17.4
  • ν™˜κ²½ : OSX
  • μ‚¬μš©μ€‘μΈ 기타 라이브러리 : karma-sinon

무슨 일이 μΌμ–΄λ‚˜κΈ°λ₯Ό κΈ°λŒ€ ν–ˆμŠ΅λ‹ˆκΉŒ?
트리거 될 Ajax 였λ₯˜.

μ‹€μ œλ‘œ μΌμ–΄λ‚˜λŠ” 일
Ajax 였λ₯˜ 처리기λ₯Ό νŠΈλ¦¬κ±°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μž¬μƒμ‚° 방법

this.server = sinon.fakeServer.create();
this.server.requests[0].respond(500, { 'Content-Type' : 'application/json' }, JSON.stringify({}));
Tough Help wanted Needs investigation

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ³„νš 같은 μ†Œλ¦¬. 이번 주말에 갈 μˆ˜μžˆμ„ 것 κ°™μ•„μš”.

λͺ¨λ“  35 λŒ“κΈ€

λ‚˜λŠ” 이것이 1.17.4μ—μ„œ λ°œμƒν•˜μ§€λ§Œ 1.17.3μ—μ„œλŠ” λ°œμƒν•˜μ§€ μ•ŠμŒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” karma-sinonκ³Ό λΉ„μŠ·ν•œ 섀정을 가지고 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄ 생각 μ—” λ¬Έμ œλŠ”μ΄ 컀밋 https://github.com/sinonjs/sinon/commit/2cfbacd5cea5b63c014076d3a65b6642b2200793

1.17.4 νƒœκ·Έκ°€ npm λ ˆμ§€μŠ€νŠΈλ¦¬λ‘œ ν‘Έμ‹œλ˜μ—ˆμ§€λ§Œμ΄ μ €μž₯μ†Œμ—μ„œμ΄ νƒœκ·Έμ˜ 흔적을 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. μ–΄λ–»κ²Œ 된 κ±°μ˜ˆμš”?

λ‚΄ 생각 μ—” νƒœκ·Έκ°€ 아직 μƒμ„±λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. 3 μ‹œκ°„ 전에 만 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

@mbarlock 예, μ•„λ§ˆλ„ β€” κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  GitHub의 νƒœκ·Έκ°€ λ¨Όμ € 릴리슀되면 더 λ‚˜μ„ 것이라고 μƒκ°ν•©λ‹ˆλ‹€. 적어도 μš°λ¦¬λŠ” PRμ΄λ‚˜ μˆ˜μ •ν•΄μ•Ό ν•  것을 μ‚΄νŽ΄λ³΄κ³  도움을 쀄 κ²ƒμž…λ‹ˆλ‹€.

λ‚΄ 잘λͺ»μ΄μ•Ό. git push --tags μžŠμ–΄ λ²„λ ΈμŠ΅λ‹ˆλ‹€. 버그에 λŒ€ν•œ 정보에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

2cfbacd 컀밋을 ν™•μΈν–ˆλŠ”λ° mozilla / loop # 400μ—μ„œ ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν•˜κ²Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

# 1031의 패치λ₯Ό λ‘œμ»¬μ— μ μš©ν–ˆκ³  ν…ŒμŠ€νŠΈλ₯Ό μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€.

1.17.4κ°€ κΈ°μ‘΄ λ™μž‘μ„ λ³€κ²½ν•œλ‹€λ©΄ μƒˆλ‘œμš΄ μ£Όμš” 릴리슀의 일뢀가 μ•„λ‹ˆμ–΄μ•Όν•©λ‹ˆκΉŒ? ν˜„μž¬λŠ” 1.17.3κ³Ό ν˜Έν™˜λ˜λŠ” κ²ƒμœΌλ‘œ κ°„μ£Όλ˜λ―€λ‘œ sinon 쒅속성을 "^ 1.17.3"으둜 μ§€μ •ν•˜λŠ” package.json은 1.17.4λ₯Ό μ–»κ³  μž‘λ™ν•˜λ˜ ν…ŒμŠ€νŠΈμ— μ‹€νŒ¨ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1.17.3이 μž‘λ™ν•˜λŠ” 방식은 νšŒκ·€μž…λ‹ˆλ‹€. λ‚˜λ₯Ό λ°”λ‘œ μž‘μœΌμ‹­μ‹œμ˜€. 그럴 κ²½μš°μ—λŠ” κ³ μ³μ•Όν•˜λ©° κ³ μž₯λ‚œ μƒνƒœλ‘œ μœ μ§€ν•΄μ„œλŠ” μ•ˆλ©λ‹ˆλ‹€.

μ—…λ°μ΄νŠΈ : 이것은 μ‹€μ œ λ²„κ·Έμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

였, https://github.com/sinonjs/sinon/pull/861 @fearphage μ—μ„œ μ›λž˜ 토둠을

κ·Έ 점을 κ°μ•ˆν•  λ•Œ, λ‚΄ μͺ½μ—μ„œν•΄μ•Ό ν•  μ˜¬λ°”λ₯Έ 일은 xhr.onerror λŒ€μ‹  xhr.onabort에 μ˜μ‘΄ν•˜λ„λ‘ ν…ŒμŠ€νŠΈλ₯Ό λ³€κ²½ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. λ‘œμ»¬μ—μ„œ μ‹€ν–‰λ˜λŠ” λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ node_modules λ””λ ‰ν„°λ¦¬μ—μžˆλŠ” 경우 λͺ¨λ“  쒅속성을 μžλ™μœΌλ‘œ λ‹€μ‹œ λ‹€μš΄λ‘œλ“œν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—μ΄ λ³€κ²½ 사항이 μž μ‹œ λ™μ•ˆ ν˜Όλž€μ„ μ•ΌκΈ° ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€. package.json (Travis CIκ°€ ν…ŒμŠ€νŠΈλ₯Ό μœ„ν•΄ μ²˜μŒλΆ€ν„° npm을 μ„€μΉ˜ν•˜κΈ° λ•Œλ¬Έμ— λΉ λ₯΄κ²Œ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€).

μ˜¬λ°”λ₯Έ 행동 방침이 무엇인지 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. "onerror"에 μ˜μ‘΄ν•˜λŠ” 일뢀 ν…ŒμŠ€νŠΈκ°€ "onabort"λ₯Ό μ‚¬μš©ν•΄μ•Όν•œλ‹€κ³  μ§€μ •ν•˜λŠ” 1.17.4의 λ³€κ²½ λ‘œκ·Έμ— λ©”λͺ¨λ₯Ό μΆ”κ°€ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? (btw,이 μ£Όμ„μ—μ„œ http://sinonjs.org/Changelog.txtμ—λŠ” 아직 1.17.4κ°€ ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€).

λ‚˜λŠ” 그것을 되 μ°ΎλŠ”λ‹€. λ‚΄ ν…ŒμŠ€νŠΈ μˆ˜μ •μ„ μ‘°μ‚¬ν•œ κ²°κ³Ό https://github.com/sinonjs/sinon/commit/2cfbacd5cea5b63c014076d3a65b6642b2200793에 μƒˆλ‘œμš΄ 버그가 λ„μž…λ˜μ—ˆμŒμ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€. onReadyStateChange ν•¨μˆ˜λŠ” 이제 μ •μ˜ 된 경우 onerrorλ₯Ό 직접 ν˜ΈμΆœν•˜κΈ° μœ„ν•΄ 쀑단 ν•¨μˆ˜μ— μ˜μ‘΄ν•˜λŠ” λŒ€μ‹  "였λ₯˜"ProgressEventλ₯Ό νŠΈλ¦¬κ±°ν•©λ‹ˆλ‹€. λ¬Έμ œλŠ” FakeXMLHttpRequest에 ν˜„μž¬ "였λ₯˜"μ΄λ²€νŠΈμ— λŒ€ν•œ λ¦¬μŠ€λ„ˆκ°€ μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

λˆ„λ½ 된 였λ₯˜ eventListener ν‚€λ₯Ό μΆ”κ°€ν•˜κΈ° μœ„ν•΄ PR https://github.com/sinonjs/sinon/pull/1042 λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€. 이 λ³€κ²½ 사항이 μ—†μœΌλ©΄ 합법적 인 μ„œλ²„ 였λ₯˜ 응닡 (예 : 500)μ—μ„œ ν˜ΈμΆœλ˜λŠ” onerror ν•Έλ“€λŸ¬ ν•¨μˆ˜λ₯Ό ν™•μΈν•˜λŠ” λͺ¨λ“  λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν•©λ‹ˆλ‹€. λ‹Ήμ‹ μ˜ 생각을 μ•Œλ €μ£Όμ„Έμš”, @fearphage @ fatso83

이 μŠ€λ ˆλ“œλ₯Ό 처음 μ½μ—ˆμ„ λ•Œ https://github.com/sinonjs/sinon/pull/1041을 보지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λˆ„λ½ 된 eventListener 킀와 이벀트 μˆœμ„œλ₯Ό μ£Όμž₯ν•˜λŠ” μΆ”κ°€ μ½”λ“œλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€. λŒ€μ‹  λ‚΄ PR을 λ¬΄μ‹œν•΄λ„λ©λ‹ˆλ‹€.

이제 # 1041 (# 1042와 동일)이 λ³‘ν•©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

@overcaffeinated μ—…λ°μ΄νŠΈλ₯Ό λ°©ν•΄ ν•œ λ¬Έμ„œμ˜ λΉŒλ“œ 슀크립트 μ‹€νŒ¨λ‘œ μΈν•œ λˆ„λ½ 된 λ³€κ²½ λ‘œκ·Έμ™€ κ΄€λ ¨ν•˜μ—¬ (https://github.com/sinonjs/sinon/issues/991#issuecomment-216651347 μ°Έμ‘°). λ―Έμ•ˆν•©λ‹ˆλ‹€. λ‹€μ‹œ μž‘λ™ν•˜κ²Œν•˜κ³  λ³€κ²½ 사항에 λŒ€ν•œ λ©”λͺ¨λ₯Ό μΆ”κ°€ ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

이와 같은 κ²ƒλ“€λ‘œ 인해 2.0을 μΆœμ‹œν•˜μ—¬ 1.x λΈŒλžœμΉ˜μ— λ„ˆλ¬΄ λ§Žμ€ μ—λ„ˆμ§€λ₯Ό νˆ¬μžν•˜μ§€ μ•Šλ„λ‘ν•©λ‹ˆλ‹€.

1.7.4둜 인해 μ—¬λŸ¬ ν…ŒμŠ€νŠΈκ°€ μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. 1.7.5가이 문제λ₯Ό ν•΄κ²°ν•  κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆκΉŒ?

λΆˆν–‰νžˆλ„ # 1031은 아직 μˆ˜μ •λ˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λͺ¨λ“  μ‚¬λžŒμ„ μœ„ν•΄ μˆ˜μ •λ˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. 였늘 저녁에 도움을 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

정보 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€, @ Standard8 !

XHR 사양에 λŒ€ν•œ 해석을 기반으둜이 문제λ₯Ό μˆ˜μ •ν–ˆμŠ΅λ‹ˆλ‹€ (κ³ μž₯?). μ΄λ²ˆμ—λŠ” μ˜³μ€μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ 이것을 비ꡐ할 λΈŒλΌμš°μ € κ΅¬ν˜„μ΄ μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€. μ΄λ²€νŠΈκ°€ μ˜¬λ°”λ₯Έ μˆœμ„œλ‘œ μ‹€ν–‰λ˜κ³  μ˜¬λ°”λ₯Έ μ΄λ²€νŠΈκ°€ μ‹€ν–‰λ˜λŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ sinon의 κ°€μ§œ xhr κ΅¬ν˜„μ„ μ‹€μ œμ™€ λΉ„κ΅ν•˜λŠ” ν…ŒμŠ€νŠΈ λ² λ“œκ°€ ν•„μš”ν•©λ‹ˆλ‹€.

수취인이 μžˆμŠ΅λ‹ˆκΉŒ?

@fearphage 그런 ν…ŒμŠ€νŠΈ λ² λ“œκ°€ μ–΄λ–»κ²Œ

λ‚˜λŠ” 그것이 browserscope.org와 κ°™κ±°λ‚˜ 적어도 κ²°κ³Όλ₯Ό μ €μž₯ν•˜λŠ” λ°±μ—”λ“œλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

XHR에 λŒ€ν•΄ http://www.acidtests.org/ λ₯Ό μƒμƒν•΄λ³΄μ‹­μ‹œμ˜€

λ‹€μŒμ€ λ„μ›€μ΄λ˜λŠ” λͺ‡ 가지 μš”μ²­ 기반 μœ ν‹Έλ¦¬ν‹°μž…λ‹ˆλ‹€.

https://httpbin.org/
http://requestb.in/

ν›Œλ₯­ν•œ μžμ› 인 것 κ°™μŠ΅λ‹ˆλ‹€! Browserscopeκ°€ λ‹€μš΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

@fearphage www.browserscope.org에 무언가λ₯Ό λ„£λŠ” 방법을 μ•Œμ•„λ‚Ό μ‹œκ°„μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— λŒ€μ‹  μ›Ή νŽ˜μ΄μ§€λ₯Ό μž‘μ„±ν–ˆμŠ΅λ‹ˆλ‹€.

http://people.mozilla.org/~mbanner2/sinonXHRBrowserTest.html

μ΅œμ‹  λ²„μ „μ˜ Firefox, Chrome, IE 및 Safariμ—μ„œλ‘œλ“œλ©λ‹ˆλ‹€.

@ Standard8 κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚˜λŠ” 이것을 μ‚¬μš©ν•˜μ—¬ sinon의 κ°€μ§œ μ„œλ²„ κ΅¬ν˜„μ„ λΉ„κ΅ν–ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€.

@fearphage @ fatso83 ,이 문제의 ν˜„μž¬ μƒνƒœμ— λŒ€ν•œ κ°œμš”λ₯Ό μ œκ³΅ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

λΉ λ₯Έ ν›‘μ–΄λ³΄κΈ°μ—μ„œ μš°λ¦¬λŠ” v1.17.3 κΈ°λŠ₯을 되돌리고 v1.17.5 릴리슀λ₯Ό μ œκ³΅ν•˜λŠ” 것을 κ³ λ €ν•΄μ•Όν•˜λŠ” κ²ƒμ²˜λŸΌ λ“€λ¦½λ‹ˆλ‹€. 이전 κΈ°λŠ₯이 손상 λ˜μ—ˆλ”λΌλ„ μ΄λŠ” API의 μ£Όμš” λ³€κ²½ μ‚¬ν•­μ΄λ―€λ‘œ 2.0 릴리슀둜 λ‘€λ§ν•΄μ•Όν•©λ‹ˆκΉŒ?

@fearphage κ°€ 이것에 λŒ€ν•œ μ„ΈλΆ€ 사항에 더 많이 μžˆμ§€λ§Œ 잘 μš”μ•½ν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ‚˜λŠ” v1.17 λΈŒλžœμΉ˜μ—μžˆλŠ” 것과 master μ—μžˆλŠ” 것을 λ‚΄ 머릿속에 λΆ™μž‘ 으렀고 κ³„μ†ν•΄μ„œ 압도 λ‹Ήν•œλ‹€. λ‚˜λŠ” λŒ€λΆ€λΆ„μ˜ λ¬Έμ œκ°€ master μ—μ„œ μˆ˜μ •λ˜μ—ˆλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ v1.17 브랜치 (# 1031 및 # 1041 AFAIK와 같은 μˆ˜μ • 사항이 μ—†μŒ)μ—λŠ” μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ‚˜λŠ” (μ•„λ§ˆλ„) 착각 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κ°€μž₯ μ‹€μš©μ μΈ 해결책은 당신이 λ§ν•œλŒ€λ‘œν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

  • 1.17 λΈŒλžœμΉ˜μ— λŒ€ν•œ # 1017 (및 κ΄€λ ¨?)을 되돌렀 λ…Έμ΄μ¦ˆλ₯Ό 쀄이고 λ„€νŠΈμ›Œν¬ APIλ₯Ό λ™μΌν•˜κ²Œ μœ μ§€ν•˜κ³  1.17.5 릴리슀λ₯Ό μ œκ³΅ν•˜κ³  κ΅¬ν˜„μ΄ 버전 2보닀 덜 μ •ν™•ν•˜λ‹€λŠ” 사싀을 μΈμ •ν•˜μ‹­μ‹œμ˜€.
  • master 의 λ³€κ²½ 사항을 μœ μ§€ν•˜κ³  λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€μ΄λ“œμ— λ³€κ²½λœ 사항을 λ¬Έμ„œν™”ν•˜μ‹­μ‹œμ˜€ (# 1090 μ°Έμ‘°).

λ‚˜λŠ” μ—¬κΈ°μ„œ 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€ 따라 작고 μžˆμŠ΅λ‹ˆλ‹€. λ˜λŒλ¦¬κΈ°λ³΄λ‹€ μˆ˜μ •ν•˜λŠ” 것이 더 λ‚«μŠ΅λ‹ˆκΉŒ?

κ°€μž₯ 큰 λ³€ν™”λŠ” error / onerror μž…λ‹ˆλ‹€. κ·Έλ ‡μ£ ?

@fearphage μ°¨μž„μ— κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€! 속도가 느리기 λ•Œλ¬Έμ— λͺ¨λ“  μˆ˜μ • 사항이 v1.17 λΈŒλžœμΉ˜μ— μ μš©λ˜μ—ˆμ„ λ•Œ κΈ°μ‘΄ μ΅œμ’… μ‚¬μš©μžμ˜ κ΄€μ μ—μ„œ μ–΄λ–€ API λ³€κ²½ 사항이 λΆ„λͺ…ν•΄ μ§ˆμ§€ 5 μ€„λ‘œ μš”μ•½ ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

μƒˆλ‘œμš΄ 메이저 λ²„μ „μ—μ„œλŠ” 큰 변경이 κ°€λŠ₯ν•˜μ§€λ§Œ, 1.xμ—μ„œ λ§Žμ€ ν…ŒμŠ€νŠΈλ₯Ό μ€‘λ‹¨ν•˜κΈ° μ‹œμž‘ν•˜λŠ” λͺ¨λ“  것은 μ•„λ§ˆλ„ 보λ₯˜ μƒνƒœ μ—¬μ•Όν•˜μ§€λ§Œ master 적용된 μˆ˜μ • 사항이 μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€

λ‚΄κ°€ μ΄ν•΄ν•˜λŠ” ν•œ, 200 κ°œκ°€ μ•„λ‹Œ μš”μ²­μ€ μ—¬μ „νžˆ error 이벀트λ₯Ό νŠΈλ¦¬κ±°ν•΄μ•Όν•œλ‹€λŠ” 점만 κΉ¨μ‘ŒμŠ΅λ‹ˆλ‹€. 이것에 더 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” 그것이 ν•„μš”ν•œ λͺ¨λ“  것이 λ§ˆμŠ€ν„°μ˜ μˆ˜μ •μ΄λΌκ³  λ―ΏμŠ΅λ‹ˆλ‹€.

Github와 NPMμ—μ„œλ„ v1.7.4 λ₯Ό κ°€μ Έ μ˜€λŠ” 것도 쒋은 생각 인 것 κ°™μŠ΅λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ‚¬λžŒλ“€μ€ 되돌 λ¦¬κ±°λ‚˜ μ—…κ·Έλ ˆμ΄λ“œ ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

그게 λ‹€ λ°”λ€Œμ—ˆλ‹€λ©΄ master 포함 된 μˆ˜μ • 사항을 ν¬ν•¨ν•˜κ³  μ΅œλŒ€ν•œ 빨리 1.17.5 릴리슀λ₯Ό μΆœμ‹œν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. ν•  수 있겠 μ–΄? νœ΄κ°€λ₯Ό μœ„ν•΄ λ– λ‚©λ‹ˆλ‹€ ( Date.now() ).

NPM 버전을 μ œκ±°ν•˜λŠ” 것은 "쒋은"κ²ƒμœΌλ‘œ κ°„μ£Όλ˜μ§€ μ•ŠμœΌλ―€λ‘œ 1.17.4에 λŒ€ν•΄ npm deprecate λͺ…령을 μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€. 일뢀 μ‚¬λžŒλ“€μ΄ νƒœκ·Έλ₯Ό μ‚¬μš©ν•˜λŠ” 경우 νƒœκ·Έλ₯Ό μ œκ±°ν•˜λŠ” 것도 ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 그것은 또 λ‹€λ₯Έ λ…Όμ˜μ΄λ©°, μˆ˜μ • 사항을 μ œκ³΅ν•˜λŠ” 데 집쀑할 것을 μ œμ•ˆν•©λ‹ˆλ‹€.

κ³„νš 같은 μ†Œλ¦¬. 이번 주말에 갈 μˆ˜μžˆμ„ 것 κ°™μ•„μš”.

λˆ„κ΅°κ°€ # 1102에 무게λ₯Όλ‘κ³  싢닀면이 λ¬Έμ œμ— λŒ€ν•œ 해결책을 μ œμ•ˆν–ˆμŠ΅λ‹ˆλ‹€.

λˆ„κ΅°κ°€ 그것을 ν•„μš”λ‘œν•œλ‹€λ©΄, λ‚˜λŠ” @ Standard8 의 ν…ŒμŠ€νŠΈ νŒŒμΌμ„ μ•½κ°„ μˆ˜μ •ν–ˆκ³  이것이 λ‚΄κ°€ κ°€μ§œ xhr을 λΈŒλΌμš°μ € λ™μž‘μ— 더 κ°€κΉκ²Œ λ§Œλ“€κΈ° μœ„ν•΄ μ‚¬μš©ν–ˆλ˜ κ²ƒμž…λ‹ˆλ‹€.

https://dl.dropboxusercontent.com/u/2400/tc/sinon/xhr-browser-test.htm

@ Standard8 λ‹€μ‹œ κ°μ‚¬ν•©λ‹ˆλ‹€! :λ°•μˆ˜:

사양에 λ”°λ₯΄λ©΄ onerror μ΄λ²€νŠΈλŠ” DNS μ‹œκ°„ 초과 λ˜λŠ” μ‘λ‹΅ν•˜μ§€ μ•ŠλŠ” μ„œλ²„μ™€ 같은 λ„€νŠΈμ›Œν¬ μˆ˜μ€€ μ΄λ²€νŠΈκ°€ λ°œμƒν•  λ•Œλ§Œ νŠΈλ¦¬κ±°λ©λ‹ˆλ‹€. 500 λ˜λŠ” 404λŠ” 정상적인 HTTP 응닡이며 였λ₯˜κ°€ λ°œμƒν–ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό κ²°μ •ν•˜λŠ” 것은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 달렀 μžˆμŠ΅λ‹ˆλ‹€. https://www.w3.org/TR/XMLHttpRequest/#event -xhr-error
사양이 ν‰μ†Œμ²˜λŸΌ λ„ˆλ¬΄ κ°„κ²°ν•©λ‹ˆλ‹€. 2xxκ°€ μ•„λ‹Œ 응닡은 jQuery에 μ˜ν•΄ 였λ₯˜λ‘œ κ°„μ£Όλ˜λ―€λ‘œ λ§Žμ€ μ‚¬λžŒλ“€μ΄ XMLHttpRequest의 λ™μž‘μ— ν˜Όλž€μŠ€λŸ¬μ›Œν•©λ‹ˆλ‹€.

@ nyk0r : Phred의 μˆ˜μ •μ΄ν•˜λŠ” μΌμž…λ‹ˆλ‹€. :)

@gil :이 λ¬Έμ œλŠ” # 1102, # 1108, # 1109μ—μ„œ @fearphage 의 ν›Œλ₯­ν•œ μž‘μ—…μœΌλ‘œ μˆ˜μ •λ˜μ–΄μ•Όν•©λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ λΆˆμ™„μ „ν•˜λ―€λ‘œ (확인 / 확인 μ—†μŒ) ν˜„μž¬ v1.17 브랜치의 μ½”λ“œμ— μ˜ν•΄ μ‹€μ œλ‘œ μˆ˜μ •λ˜μ—ˆλŠ”μ§€ 확인 ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ? κ·Έλ ‡κ²Œν•˜μ‹œλ©΄ μ΅œλŒ€ν•œ 빨리 μƒˆ 패치 릴리슀λ₯Ό 배솑 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜λŠ” @wlepinski λ˜λŠ” @mbarlock 이 v1.17 λΈŒλžœμΉ˜μ—μ„œ μˆ˜μ •λ˜μ—ˆλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ? λ‹¨μ§€μ—μ„œ sinon μ˜μ‘΄μ„± λ³€κ²½ package.json 읽어 : sinon#v1.17 GitHubμ˜μ—μ„œ 직접 ꢌ리 λΆ„κΈ°λ₯Ό μ‚¬μš© ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ’‹μŠ΅λ‹ˆλ‹€. λ‹€μŒ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜μ—¬ μˆ˜μ •λ˜μ—ˆλŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

"call load handler on non-2xx statuses" : function(){
  var stub = sinon.stub();
  this.xhr.addEventListener("load", stub);
  this.xhr.open("GET", "/");
  this.xhr.send();

  this.xhr.respond(500, { 'Content-Type' : 'application/json' }, JSON.stringify({}));
  assert(stub.called);
}

이것은 1.17.4μ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ μ΅œμ‹  μˆ˜μ •μ—μ„œλŠ” μž‘λ™ν•©λ‹ˆλ‹€.

@fearphageλŠ” 이미 bf709a7f (1797 ν–‰)μ—μ„œμ΄ ν…ŒμŠ€νŠΈλ₯Ό λ‹€λ£¨μ—ˆμ§€λ§Œ 헀이 ...

μˆ˜μ • λœλŒ€λ‘œ λ‹«νž™λ‹ˆλ‹€.

μ•ˆνƒ€κΉκ²Œλ„ 더 이상 ν…ŒμŠ€νŠΈ ν•  ν”„λ‘œμ νŠΈμ— μ•‘μ„ΈμŠ€ ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μ§€κΈˆμ€ μƒˆλ‘œμš΄ νšŒμ‚¬μ—μ„œ μΌν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 라이브러리λ₯Ό μ—…λ°μ΄νŠΈν•˜λ €λŠ” 경우 μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. 고쳐 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€ !!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰