이 라이브러리는 XMLHttpRequest
와의 상호 작용을 시뮬레이션하기 위한 간단한 인터페이스를 제공하는 XMLHttpRequest
의 모조품입니다. 이는 테스트를 위해 XMLHttpRequest
를 즉시 대체합니다.
이 라이브러리는 XMLHttpRequest
인터페이스를 구현하고 실제 네트워크 요청을 사용하지 않고 XMLHTTPRequest 사양에 지정된 대로 요청과 이벤트를 처리합니다. 다음 세 가지 방법으로 모의 요청에 응답할 수 있습니다.
모의 응답 방법을 사용하여 응답, 업로드 진행 상황, 오류 및 기타 상호 작용을 시뮬레이션할 수 있습니다. 이는 이벤트 발생 및 XMLHttpRequest
의 readystate
속성 변경과 같은 하위 수준 처리를 자동으로 처리합니다.
MockXhr
요청에 응답timeout
속성 및 요청 시간 초과MockXhr
수명주기 후크 사용MockXhrServer
클래스MockXhrServer
설정MockXhr
클래스MockXhr
수명주기 후크MockXhrRequest
클래스newMockXhr()
newServer()
XMLHttpRequest
기능npm(노드 패키지 관리자)을 통해
$ npm install mock-xmlhttprequest
import { newServer } from 'mock-xmlhttprequest' ;
import { functionToTest } from '../src/SomethingToTest' ;
// Adapt based on your testing framework. This example uses Mocha and Chai's syntax.
it ( 'should produce a success response' , async ( ) => {
const server = newServer ( {
get : [ '/my/url' , {
// status: 200 is the default
headers : { 'Content-Type' : 'application/json' } ,
body : '{ "message": "Success!" }' ,
} ] ,
} ) ;
try {
// Installs the server's XMLHttpRequest mock in the "global" context.
// After this, "new XMLHttpRequest()" creates a mock request to which the server replies.
server . install ( /* optional context; defaults to globalThis */ ) ;
// Do something that send()s an XMLHttpRequest to '/my/url' and returns a Promise
// that resolves to the parsed JSON response
const result = await functionToTest ( ) ;
assert . equal ( result . message , 'Success!' ) ;
} finally {
// Restore the original XMLHttpRequest
server . remove ( ) ;
}
} ) ;
XMLHttpRequest
모의 클래스는 MockXhr
입니다. 이는 XMLHttpRequest
와 동일한 인터페이스를 노출하며 XMLHttpRequest
사용하는 테스트 코드를 즉시 대체합니다.
MockXhr
인스턴스의 동작을 제어하는 두 가지 옵션이 있습니다:
XMLHttpRequest
수명주기 후크. 모의 서버에서 제공하는 기능 없이 요청을 더 효과적으로 제어해야 하는 경우 이를 사용하세요. MockXhrServer
클래스는 모의 서버를 구현합니다. newServer
사용하여 MockXhrServer
만듭니다. MockXhrServer
는 MockXhr
요청에 자동으로 응답하고 테스트 작성을 쉽게 만듭니다.
MockXhrServer
사용하는 테스트의 기본 구조는 다음과 같습니다.
import { newServer } from 'mock-xmlhttprequest' ;
const server = newServer ( /* routes */ ) ;
try {
server . install ( /* optional context; defaults to globalThis */ ) ;
// Test your code that creates XMLHttpRequests
} finally {
// Reverts server.install() at the end of the test.
// Only do this after the test case has finished creating XMLHttpRequests.
server . remove ( ) ;
}
코드에서 XMLHttpRequest
대신 MockXhr
클래스를 사용하도록 하는 두 가지 접근 방식이 있습니다. 이를 통해 MockXhrServer
가 요청에 응답할 수 있습니다.
XMLHttpRequest
클래스를 서버의 MockXhr
클래스로 전역적으로 바꾸려면 install()
사용하십시오. 테스트 케이스가 끝나면 remove()
호출하여 원래 상태를 복원합니다.XMLHttpRequest
인스턴스를 생성하는 방법을 구성할 수 있는 경우 다음 MockXhrServer
속성 중 하나와 함께 MockXhr
클래스를 직접 사용하세요.xhrFactory
MockXhr
인스턴스를 생성하는 함수입니다.MockXhr
xhrFactory
에 의해 생성된 인스턴스의 클래스입니다. 이 코드는 xhrFactory
사용법을 보여줍니다.
import { newServer } from 'mock-xmlhttprequest' ;
const server = newServer ( /* routes */ ) ;
const savedFactory = MyClass . xhrFactory ;
try {
MyClass . xhrFactory = server . xhrFactory ;
// Test code that creates XMLHttpRequests through MyClass.xhrFactory()
} finally {
// Only do this after the test case has finished creating XMLHttpRequests.
MyClass . xhrFactory = savedFactory ;
}
경로는 MockXhrServer
MockXhr
요청에 응답하는 방법을 정의합니다. 여기에는 세 부분이 있습니다.
MockXhr
요청을 보내면 MockXhrServer
요청의 메서드 및 URL과 일치하는 첫 번째 경로를 찾습니다. 그런 다음 경로의 요청 핸들러로 응답합니다. 기본 요청 처리기를 설정할 수도 있습니다. 요청 처리기는 선언적으로 또는 프로그래밍 방식으로 정의됩니다.
기본적으로 요청의 timeout
속성이 0이 아닌 값으로 설정되고 MockXhrServer
요청에 응답하지 않으면 결국 시간 초과됩니다.
MockXhrServer
에 경로를 추가하는 방법에는 두 가지가 있습니다.
newServer
의 routes
인수입니다.MockXhrServer
메서드. MockXhrServer
수신한 모든 MockXhr
요청을 요청 로그에 기록합니다. 이를 사용하여 코드가 보내는 XMLHttpRequest
요청의 유효성을 검사합니다.
MockXhrServer
는 요청(업로드) 및 응답(다운로드) 진행 이벤트를 자동으로 생성할 수 있습니다. 이는 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 progressRate
필드를 사용하세요.
Function
유형의 요청 핸들러를 사용하여 프로그래밍 방식으로 MockXhr
요청에 응답하는 경우 진행 이벤트를 생성할 수도 있습니다.
MockXhr
요청에 대한 응답은 비동기적입니다. 이는 실제 XMLHttpRequest
요청이 작동하는 방식을 재현합니다. 따라서 테스트 프레임워크의 비동기 테스트 지원을 사용해야 할 가능성이 높습니다. 예를 들어 Mocha 테스트 프레임워크에 대한 관련 문서는 여기에 있습니다.
MockXhr
요청에 응답하려면 onSend
수명 주기 후크가 필요합니다. 모의 서버는 이를 자동으로 처리합니다. 다른 옵션은 MockXhr
수명 주기 후크를 직접 사용하는 것입니다. 두 경우 모두 onSend
수명 주기 후크는 XMLHttpRequest.send()
호출하는 실행 컨텍스트가 완료되거나 지워진 후에 실행됩니다. 내부적으로 이 라이브러리는 즉시 해결되는 Promise
사용하여 빈 호출 스택을 얻습니다.
MockXhr
요청에 응답 요청에 응답하기 위한 여러 MockXhr
메서드와 속성이 있습니다. 이러한 방법을 사용하면 다음과 같은 상호 작용이 가능합니다.
자세한 내용은 모의 응답 방법 섹션을 참조하세요.
timeout
속성 및 요청 시간 초과 기본적으로 코드에서 XMLHttpRequest
의 timeout
속성을 설정하면 MockXhr
요청은 지정된 지연 후에 자동으로 시간 초과됩니다. 그러면 사양에 설명된 대로 timeout
이벤트가 발생하고 요청이 취소됩니다.
코드가 시간 초과를 처리하는 방법을 테스트하기 위해 시간의 흐름에 의존하면 일반적으로 테스트가 취약해지고 디버깅이 어려워집니다. 대신 setRequestTimeout()
사용하여 프로그래밍 방식으로 시간 초과를 트리거할 수 있습니다.
다음 옵션 중 하나를 사용하여 자동 요청 시간 초과를 비활성화합니다.
MockXhrServer
에서 disableTimeout()
호출합니다. 이는 처리하는 모든 MockXhr
인스턴스에 영향을 미칩니다.MockXhr.timeoutEnabled = false
. MockXhr
클래스의 이 정적 속성은 각 인스턴스에 영향을 미칩니다.MockXhr
인스턴스에서 timeoutEnabled
false
로 설정합니다. 이는 해당 인스턴스에만 영향을 미칩니다.MockXhr
수명주기 후크 사용 이는 MockXhrServer
를 사용하지 않는 대체 사용 패턴입니다. 대신 MockXhr
수명 주기 후크를 직접 사용합니다. 이를 위해서는 더 많은 코드가 필요하지만 MockXhr
요청을 더 많이 제어할 수 있습니다.
모의 서버만 확장해야 하는 경우 MockXhrServer
와 함께 MockXhr
수명 주기 후크를 사용할 수도 있습니다.
예:
import { newMockXhr } from 'mock-xmlhttprequest' ;
import { functionToTest } from '../src/SomethingToTest' ;
// Adapt based on your testing framework. This example uses Mocha and Chai's syntax.
it ( 'should produce a success response' , async ( ) => {
// Get a "local" MockXhr subclass
const MockXhr = newMockXhr ( ) ;
// Mock JSON response
MockXhr . onSend = ( request ) => {
const responseHeaders = { 'Content-Type' : 'application/json' } ;
const response = '{ "message": "Success!" }' ;
request . respond ( 200 , responseHeaders , response ) ;
} ;
try {
// Install in the global context so "new XMLHttpRequest()" creates MockXhr instances
global . XMLHttpRequest = MockXhr ;
// Do something that send()s an XMLHttpRequest to '/my/url' and returns a Promise
// that resolves to the parsed JSON response
const result = await functionToTest ( ) ;
assert . equal ( result . message , 'Success!' ) ;
} finally {
// Restore the original XMLHttpRequest
delete global . XMLHttpRequest ;
}
} ) ;
MockXhrServer
클래스 이 클래스는 URL과 메소드를 기반으로 MockXhr
요청에 응답하는 모의 서버입니다.
MockXhrServer
설정 MockXhrServer(routes)
인수:
routes
: 서버의 초기 경로 집합이 포함된 개체입니다. (선택 과목) 대부분의 경우 이 생성자 대신 newServer
직접 사용해야 합니다.
routes
객체의 키는 HTTP 메서드입니다. 값은 [url_matcher, request_handler]
의 두 요소가 있는 배열입니다.
요청 URL 일치자 및 요청 처리기를 참조하세요.
예:
const handlerFn = ( request ) => { request . respond ( ) ; } ;
newServer ( {
get : [ '/get' , { status : 200 } ] ,
'my-method' : [ '/my-method' , { status : 201 } ] ,
post : [ '/post' , [ handlerFn , { status : 404 } ] ] ,
} ) ;
install(context = globalThis)
인수:
context
: 값을 제공하면 install
메소드는 전역 컨텍스트 대신 이 컨텍스트에서 XMLHttpRequest
속성을 설정합니다. (선택 과목) XMLHttpRequest
클래스를 대체하기 위해 서버의 MockXhr
모의를 전역 컨텍스트에 설치합니다. 제거()를 사용하여 되돌립니다.
remove()
install()에 의해 변경된 내용을 되돌립니다. 테스트 후에 이것을 호출하세요.
progressRate
progressRate
0보다 큰 number
로 설정하면 서버는 자동으로 요청(업로드) 및 응답(다운로드) 진행 이벤트를 생성합니다. 각 진행 이벤트는 progressRate
바이트만큼 증가합니다.
progressRate
object
유형의 요청 핸들러에만 적용됩니다.
disableTimeout()
및 enableTimeout()
이 메소드는 MockXhr
의 timeout
속성 효과를 비활성화하거나 활성화합니다. " timeout
속성 및 요청 시간 초과"를 참조하세요.
경로는 서버가 MockXhr
요청에 응답하는 방법을 구성합니다. 그 세 부분은 아래에 설명되어 있습니다.
경로 개념은 대략적으로 Express 프레임워크를 기반으로 합니다.
유효한 HTTP 요청 메서드가 포함된 모든 string
허용됩니다. 유효한 메소드에는 GET
, POST
, PUT
및 DELETE
와 같은 표준 메소드와 기타 메소드 이름이 포함됩니다. 표준 메소드 이름은 대소문자를 구분하지 않습니다.
요청 URL 일치자는 다음 유형 중 하나일 수 있습니다.
string
(예 '/my-url'
)입니다.RegExp
.true
반환하는 Function
입니다. 함수는 URL을 인수로 받습니다. 요청 핸들러는 다음 유형 중 하나일 수 있습니다.
응답 속성이 있는 object
입니다. 기본값은 다음과 같습니다.
{ status: 200, headers: {}, body: null, statusText: 'OK' }
모의 응답 메서드를 직접 호출하는 Function
입니다. 이 함수는 MockXhrRequest
인스턴스를 인수로 받습니다.
값이 'error'
또는 'timeout'
인 string
입니다. 이로 인해 각각 오류 또는 시간 초과가 발생합니다.
위의 다른 요청 핸들러 유형의 배열입니다. 첫 번째 요청은 첫 번째 핸들러를 가져오고, 두 번째 요청은 두 번째 핸들러를 가져오는 식으로 진행됩니다. 배열에 더 이상 핸들러가 없으면 마지막 핸들러가 재사용됩니다.
object
요청 핸들러의 경우 서버는 응답 본문의 길이와 함께 Content-Length
응답 헤더를 자동으로 추가합니다.
다음 핸들러는 모두 동일합니다.
const handlerObj = { } ;
const handlerFn = ( request ) => { request . respond ( 200 , { 'Content-Length' : '0' } ) ; } ;
const handlerArray = [ { } ] ;
get(urlMatcher, handler)
인수:
urlMatcher
: URL 일치자를 요청합니다.handler
: 요청 핸들러. GET
HTTP 메서드에 대한 경로를 추가합니다.
post(urlMatcher, handler)
인수:
urlMatcher
: URL 일치자를 요청합니다.handler
: 요청 핸들러. POST
HTTP 메서드에 대한 경로를 추가합니다.
put(urlMatcher, handler)
인수:
urlMatcher
: URL 일치자를 요청합니다.handler
: 요청 핸들러. PUT
HTTP 메서드에 대한 경로를 추가합니다.
delete(urlMatcher, handler)
인수:
urlMatcher
: URL 일치자를 요청합니다.handler
: 요청 핸들러. DELETE
HTTP 메서드에 대한 경로를 추가합니다.
addHandler(method, urlMatcher, handler)
인수:
method
: string
로서의 HTTP 메소드입니다.urlMatcher
: URL 일치자를 요청합니다.handler
: 요청 핸들러. HTTP 메소드 method
에 대한 경로를 추가합니다.
setDefaultHandler(handler)
인수:
handler
: 요청 핸들러.어떤 경로와도 일치하지 않는 요청에 대한 기본 요청 처리기를 설정합니다.
setDefault404()
404 응답을 반환하는 기본 요청 핸들러를 설정합니다.
xhrFactory
새로운 MockXhr
인스턴스를 반환하는 함수입니다.
MockXhr
서버가 연결되는 MockXhr
클래스입니다. xhrFactory
이 클래스의 인스턴스를 생성합니다.
getRequestLog()
지금까지 서버에서 받은 모든 요청의 배열을 반환합니다. 각 호출은 새로운 배열을 반환합니다. 각 배열 요소는 다음 속성을 가진 객체입니다.
method
: HTTP 메소드 string
.url
: URL string
.body
: 요청 본문headers
: 헤더를 객체로 요청합니다. 헤더 이름은 소문자입니다.MockXhr
클래스 이 클래스는 XMLHttpRequest
의 모의 클래스입니다. 이 섹션에는 사양에 없는 메서드와 속성이 설명되어 있습니다.
MockXhr.timeoutEnabled
이 정적 boolean
속성은 클래스의 모든 인스턴스 요청에 대한 자동 시간 초과를 제어합니다.
timeoutEnabled
이 boolean
속성은 이 MockXhr
인스턴스의 자동 시간 초과를 제어합니다.
getResponseHeadersHash()
모든 응답 헤더를 객체로 반환합니다. 헤더 이름은 소문자입니다.
MockXhr
수명주기 후크 다음 위치에서 MockXhr
수명 주기 후크에 대한 콜백 메서드를 정의할 수 있습니다.
MockXhr
클래스의 정적 속성입니다. 후크는 MockXhr
및 해당 하위 클래스의 모든 인스턴스에 적용됩니다.MockXhrServer.MockXhr
또는 newMockXhr()
에 의해 반환된 MockXhr
하위 클래스의 정적 속성입니다. 후크는 해당 클래스의 모든 인스턴스에 적용됩니다.MockXhr
인스턴스의 속성입니다. 후크는 해당 인스턴스에만 적용됩니다.수명 주기 이벤트에 대해 여러 후크를 정의하면 위의 순서대로 호출됩니다.
일반적으로 테스트 케이스를 더 쉽게 분리할 수 있는 세 번째 옵션을 선호해야 합니다.
onCreate
다음 인수를 받는 콜백 메서드:
xhr
: 새로운 MockXhr
인스턴스. 이 수명 주기 후크를 사용하여 MockXhr
인스턴스가 생성될 때 이를 가로채세요.
MockXhr
의 인스턴스가 생성될 때 생성자의 끝에서 호출됩니다. 따라서 이 수명 주기 후크는 정적 속성으로만 사용할 수 있습니다.
import { MockXhr , newMockXhr } from 'mock-xmlhttprequest' ;
// Called for all instances of MockXhr and all its subclasses
MockXhr . onCreate = ( xhr ) => { /*...*/ } ;
// Called for all instances of this MockXhr subclass
const MockXhrSubclass = newMockXhr ( ) ;
MockXhrSubclass . onCreate = ( xhr ) => { /*...*/ } ;
onSend
다음 인수를 받는 콜백 메서드:
request
: 요청에 대한 MockXhrRequest
.xhr
: MockXhr
인스턴스입니다.모의 응답 메서드로 요청에 응답하려면 이 수명 주기 후크를 사용하세요.
send()
호출할 때마다 비동기적으로 호출됩니다. send()
에 대한 각 호출은 MockXhrRequest
의 별도 인스턴스를 사용하여 onSend
에 대한 호출을 생성합니다.
import { MockXhr , newMockXhr } from 'mock-xmlhttprequest' ;
// Called for all instances of MockXhr and all its subclasses
MockXhr . onSend = ( request ) => { /*...*/ } ;
// Called for all instances of this MockXhr subclass
const MockXhrSubclass = newMockXhr ( ) ;
MockXhrSubclass . onSend = ( request ) => { /*...*/ } ;
// Called for this instance only
const xhr = new MockXhrSubclass ( ) ;
xhr . onSend = ( request ) => { /*...*/ } ;
MockXhrRequest
클래스 send()
에 대한 각 호출은 XMLHttpRequest
에 대한 정보를 포함하고 프로그래밍 방식으로 응답하는 메서드를 제공하는 MockXhrRequest
생성합니다.
requestHeaders
요청 헤더의 복사본이 포함된 HeadersContainer
입니다.
method
요청의 HTTP 메소드가 포함된 string
입니다.
url
요청의 URL이 포함된 string
입니다.
body
요청 본문입니다.
withCredentials
요청의 withCredentials
값이 포함된 boolean
.
getRequestBodySize()
요청 본문의 바이트 number
.
참고: body
multipart/form-data
로 인코딩된 FormData
인 경우 이는 완전히 정확하지 않습니다. 조롱되지 않은 XMLHttpRequest
의 실제 body
크기에 기여하는 헤더, 인코딩 및 기타 요소는 고려되지 않습니다. 이 방법을 사용하여 요청의 실제 body
크기에 대한 최소값을 얻을 수 있습니다. 이는 업로드 진행 이벤트를 시뮬레이션하는 데 유용합니다.
이러한 메소드는 MockXhr
요청에 응답하기 위한 프로그래밍 인터페이스를 제공합니다.
응답 메소드에 대한 호출이 유효하지 않은 경우 "Mock usage error detected"
이 포함된 메시지와 함께 Error
발생합니다.
uploadProgress(transmitted)
인수:
transmitted
: 전송된 바이트 number
.요청 업로드 진행을 시작합니다.
요청 body
이 null
아니고 업로드가 완료되지 않은 경우에만 이를 호출할 수 있습니다.
이 메서드를 호출한 후에는 다른 모의 응답 메서드를 사용할 수 있습니다.
respond(status = 200, headers = {}, body = null, statusText = 'OK')
인수:
status
: 응답 HTTP 상태 number
. (선택 과목)headers
: 응답 헤더가 있는 object
. (선택 과목)body
: 응답 본문. (선택 과목)statusText
: string
응답 HTTP 상태 텍스트입니다. (선택 과목) 응답 헤더와 본문을 모두 설정하는 완전한 응답 방법입니다. 요청의 readyState
DONE
으로 변경합니다.
readystatechange
, progress
및 load
와 같은 적절한 이벤트를 발생시킵니다.
이는 setResponseHeaders()
다음에 setResponseBody()
오는 것을 줄여서 표현한 것입니다.
이 메서드를 호출한 후에는 다른 모의 응답 메서드를 사용할 수 없습니다. open()
다시 호출하면 이 제한이 해제됩니다.
setResponseHeaders(status = 200, headers = {}, statusText = 'OK')
인수:
status
: 응답 HTTP 상태 number
. (선택 과목)headers
: 응답 헤더가 있는 object
. (선택 과목)statusText
: string
응답 HTTP 상태 텍스트입니다. (선택 과목) 응답 헤더를 설정합니다. 요청의 readyState
HEADERS_RECEIVED
로 변경합니다.
readystatechange
, progress
및 load
와 같은 적절한 이벤트를 발생시킵니다.
이 메서드를 호출한 후 다음 모의 응답 메서드를 사용할 수 있습니다.
downloadProgress()
setResponseBody()
setNetworkError()
setRequestTimeout()
. downloadProgress(transmitted, length)
인수:
transmitted
: 전송된 바이트 number
.length
: 응답의 바이트 number
. 응답 진행 이벤트를 발생시킵니다. 요청의 readyState
HEADERS_RECEIVED
인 경우 LOADING
으로 변경합니다.
이 메서드 전에 setResponseHeaders()
호출해야 합니다.
setResponseBody(body = null)
인수:
body
: 응답 본문. (선택 과목) 응답 본문을 설정합니다. 요청의 readyState
DONE
으로 변경합니다.
readystatechange
, progress
및 load
와 같은 적절한 이벤트를 발생시킵니다.
아직 호출되지 않은 경우 setResponseHeaders()
호출합니다. 그러면 응답 헤더에는 응답 본문의 길이와 동일한 값을 가진 Content-Length
만 포함됩니다.
이 메서드를 호출한 후에는 다른 모의 응답 메서드를 사용할 수 없습니다. open()
다시 호출하면 이 제한이 해제됩니다.
setNetworkError()
네트워크 오류를 시뮬레이션합니다. 요청의 readyState
DONE
으로 변경합니다.
error
이벤트를 포함하여 적절한 이벤트를 발생시킵니다.
이 메서드를 호출한 후에는 다른 모의 응답 메서드를 사용할 수 없습니다. open()
다시 호출하면 이 제한이 해제됩니다.
setRequestTimeout()
요청 시간 초과를 시뮬레이션합니다. 요청의 readyState
DONE
으로 변경합니다.
timeout
이벤트를 포함하여 적절한 이벤트를 발생시킵니다.
request
속성이 0인 경우에는 시간 초과가 발생하지 않으므로 오류가 발생합니다.
이 메서드를 호출한 후에는 다른 모의 응답 메서드를 사용할 수 없습니다. open()
다시 호출하면 이 제한이 해제됩니다.
newMockXhr()
새로운 MockXhr
하위 클래스를 반환합니다.
각 테스트 케이스에서 MockXhr
의 다른 하위 클래스를 사용하면 해당 하위 클래스가 독립적인지 확인하는 것이 더 쉽습니다. 예를 들어, 하위 클래스에 timeoutEnabled
정적 속성을 설정하면 해당 하위 클래스에만 영향을 미치고 다른 테스트 사례에서 생성된 다른 하위 클래스에는 영향을 주지 않습니다. 하위 클래스는 재사용되지 않으므로 하위 클래스에 대한 변경 사항을 되돌리는 정리 코드가 필요하지 않습니다.
newServer(routes)
인수:
routes
: 서버의 초기 경로 집합이 포함된 개체입니다. (선택 과목) 고유한 MockXhr
하위 클래스가 있는 새로운 MockXhrServer
반환합니다. newMockXhr()
참조하세요.
선택적 routes
인수를 사용하여 MockXhrServer
에 경로를 추가합니다. 자세한 내용은 생성자를 참조하세요.
XMLHttpRequest
기능XMLHTTPRequest 사양 버전 '2022년 8월 15일'을 기준으로 합니다.
open()
, setRequestHeader()
, send()
및 abort()
.statusText
, 헤더 및 본문.timeout
속성(비활성화 가능)MockXhr.setNetworkError()
참조)MockXhr.setRequestTimeout()
참조)overrideMimeType()
필요할 때 발생하지만 다른 효과는 없습니다.responseType
: ''
, 'text'
및 'json'
이 완전히 지원됩니다. responseType
값은 setResponseBody()
에 전달된 응답 본문에 영향을 주지 않습니다.responseXml
: 응답 본문이 문서 응답으로 변환되지 않습니다. 문서 응답을 얻으려면 setResponseBody()
의 응답 본문으로 직접 전달하세요.responseUrl
: 리디렉션 후 최종 요청 URL이 자동으로 설정되지 않습니다. 이는 요청 처리기에서 에뮬레이션될 수 있습니다.open()
에서 async
false
로 설정됨)open()
에서 요청 URL을 구문 분석하고 실패 시 SyntaxError
발생시킵니다. 기여자를 환영합니다! 자세한 내용은 이 가이드를 참조하세요.
MIT