Diese Bibliothek ist eine Nachbildung von XMLHttpRequest und bietet eine einfache Schnittstelle zum Simulieren von Interaktionen mit XMLHttpRequest . Es ist ein direkter Ersatz für XMLHttpRequest für Ihre Tests.
Diese Bibliothek implementiert die XMLHttpRequest Schnittstelle und verarbeitet Anforderungen und Ereignisse gemäß der XMLHTTPRequest-Spezifikation, ohne echte Netzwerkanforderungen zu verwenden. Sie können auf die Scheinanfragen auf drei Arten antworten:
Mit den Scheinantwortmethoden können Sie Antworten, Upload-Fortschritt, Fehler und andere Interaktionen simulieren. Diese verarbeiten automatisch die Verarbeitung auf niedrigerer Ebene, z. B. das Ausgeben von Ereignissen und das Ändern der readystate -Eigenschaft von XMLHttpRequest .
MockXhr -Anfragentimeout Attribut und die Anforderungs-TimeoutsMockXhr Lebenszyklus-HooksMockXhrServer -KlasseMockXhrServer -SetupMockXhr KlasseMockXhr Lebenszyklus-HooksMockXhrRequest -KlassenewMockXhr()newServer()XMLHttpRequest Funktionenüber npm (Node Package Manager)
$ 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 ( ) ;
}
} ) ; Die XMLHttpRequest Mock-Klasse ist MockXhr . Es stellt dieselbe Schnittstelle wie XMLHttpRequest bereit und ist ein direkter Ersatz für Testcode, der XMLHttpRequest verwendet.
Es gibt zwei Möglichkeiten, das Verhalten von MockXhr -Instanzen zu steuern:
XMLHttpRequest Lebenszyklus-Hooks. Verwenden Sie dies, wenn Sie mehr Kontrolle über Anfragen ohne die vom Mock-Server bereitgestellten Funktionen benötigen. Die MockXhrServer -Klasse implementiert den Mock-Server. Sie erstellen einen MockXhrServer mit newServer . Der MockXhrServer antwortet automatisch auf MockXhr -Anfragen und erleichtert das Schreiben von Tests.
Die Grundstruktur von Tests, die MockXhrServer verwenden, ist:
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 ( ) ;
} Es gibt zwei Ansätze, damit Ihr Code die MockXhr -Klasse als Ersatz für XMLHttpRequest verwendet. Dadurch kann der MockXhrServer auf Anfragen reagieren:
install() um die XMLHttpRequest -Klasse global durch die MockXhr -Klasse des Servers zu ersetzen. Rufen Sie am Ende des Testfalls remove() auf, um den ursprünglichen Zustand wiederherzustellen.XMLHttpRequest erstellt werden, verwenden Sie die MockXhr Klasse direkt mit einer der folgenden MockXhrServer -Eigenschaften:xhrFactory ist eine Funktion, die eine MockXhr -Instanz erstellt.MockXhr ist die Klasse der von xhrFactory erstellten Instanzen. Dieser Code demonstriert die Verwendung von 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 ;
} Routen definieren, wie der MockXhrServer auf MockXhr -Anfragen reagiert. Diese bestehen aus drei Teilen:
Wenn Sie eine MockXhr Anfrage senden, findet der MockXhrServer die erste Route, die der Methode und URL der Anfrage entspricht. Anschließend antwortet es mit dem Anforderungshandler der Route. Sie können auch einen Standard-Anfrage-Handler festlegen. Anforderungshandler werden entweder deklarativ oder programmgesteuert definiert.
Wenn timeout Attribut einer Anfrage auf einen Wert ungleich Null gesetzt ist und MockXhrServer nicht auf die Anfrage antwortet, kommt es standardmäßig zu einer Zeitüberschreitung.
Es gibt zwei Möglichkeiten, Routen zum MockXhrServer hinzuzufügen:
routes des newServer .MockXhrServer -Methoden, die Routen hinzufügen. Der MockXhrServer zeichnet alle MockXhr -Anfragen, die er erhält, in einem Anfrageprotokoll auf. Verwenden Sie dies, um die XMLHttpRequest Anfragen zu validieren, die Ihr Code sendet.
Der MockXhrServer kann Fortschrittsereignisse für Anfragen (Upload) und Antworten (Download) automatisch generieren. Dies ist standardmäßig deaktiviert. Verwenden Sie das Feld progressRate um dies zu aktivieren.
Sie können Fortschrittsereignisse auch generieren, wenn Sie programmgesteuert mit einem Anforderungshandler vom Typ Function auf MockXhr -Anfragen antworten.
Antworten auf MockXhr -Anfragen sind asynchron. Dies reproduziert, wie eine echte XMLHttpRequest -Anfrage funktioniert. Daher müssen Sie höchstwahrscheinlich die asynchrone Testunterstützung Ihres Testframeworks nutzen. Die relevante Dokumentation zum Mocha-Testframework finden Sie beispielsweise hier.
Der onSend Lebenszyklus-Hook ist erforderlich, um auf MockXhr -Anfragen zu reagieren. Der Mock-Server erledigt dies automatisch. Die andere Möglichkeit besteht darin, die MockXhr Lebenszyklus-Hooks direkt zu verwenden. In beiden Fällen wird der onSend Lebenszyklus-Hook ausgeführt, nachdem der Ausführungskontext, der XMLHttpRequest.send() aufruft, abgeschlossen oder gelöscht wurde. Intern verwendet diese Bibliothek ein sofort aufgelöstes Promise , um einen leeren Callstack zu erhalten.
MockXhr -Anfragen Es gibt mehrere MockXhr -Methoden und -Eigenschaften, um auf Anfragen zu reagieren. Diese Methoden ermöglichen die folgenden Interaktionen:
Weitere Informationen finden Sie im Abschnitt Scheinantwortmethoden.
timeout Attribut und die Anforderungs-Timeouts Wenn Sie das timeout Attribut von XMLHttpRequest in Ihrem Code festlegen, werden MockXhr -Anfragen standardmäßig nach der angegebenen Verzögerung automatisch abgelaufen. Dadurch wird das timeout -Ereignis ausgegeben und die Anforderung wie in der Spezifikation beschrieben abgebrochen.
Wenn Sie sich auf den Zeitablauf verlassen, um zu testen, wie Ihr Code mit Zeitüberschreitungen umgeht, werden Tests im Allgemeinen spröde und schwer zu debuggen. Sie können Timeouts stattdessen programmgesteuert mit setRequestTimeout() auslösen.
Deaktivieren Sie automatische Zeitüberschreitungen bei Anfragen mit einer dieser Optionen:
disableTimeout() auf einem MockXhrServer auf. Dies betrifft alle MockXhr -Instanzen, die es verarbeitet.MockXhr.timeoutEnabled = false . Diese statische Eigenschaft der MockXhr -Klasse wirkt sich auf jede ihrer Instanzen aus.timeoutEnabled auf einer MockXhr -Instanz auf false . Dies betrifft nur diese Instanz.MockXhr Lebenszyklus-Hooks Dies ist ein alternatives Nutzungsmuster, das den MockXhrServer nicht verwendet. Stattdessen verwenden Sie direkt die MockXhr Lebenszyklus-Hooks. Dies erfordert mehr Code, aber Sie haben mehr Kontrolle über MockXhr Anfragen.
Beachten Sie, dass Sie die MockXhr Lebenszyklus-Hooks auch zusammen mit MockXhrServer verwenden können, wenn Sie nur den Mock-Server erweitern müssen.
Beispiel:
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 -Klasse Diese Klasse ist ein Scheinserver, der auf MockXhr -Anfragen basierend auf ihrer URL und Methode antwortet.
MockXhrServer -Setup MockXhrServer(routes)Argumente:
routes : Objekt mit dem anfänglichen Routensatz des Servers. (optional) In den meisten Fällen sollten Sie newServer anstelle dieses Konstruktors direkt verwenden.
Die Schlüssel des routes sind HTTP-Methoden. Die Werte sind Arrays mit zwei Elementen: [url_matcher, request_handler] .
Siehe auch Request-URL-Matcher und Request-Handler.
Beispiel:
const handlerFn = ( request ) => { request . respond ( ) ; } ;
newServer ( {
get : [ '/get' , { status : 200 } ] ,
'my-method' : [ '/my-method' , { status : 201 } ] ,
post : [ '/post' , [ handlerFn , { status : 404 } ] ] ,
} ) ; install(context = globalThis)Argumente:
context : Wenn Sie einen Wert angeben, legt die install die XMLHttpRequest Eigenschaft in diesem Kontext statt im globalen Kontext fest. (optional) Installiert den MockXhr -Mock des Servers im globalen Kontext, um die XMLHttpRequest Klasse zu ersetzen. Mit „remove()“ wiederherstellen.
remove()Macht die von install() vorgenommenen Änderungen rückgängig. Rufen Sie dies nach Ihren Tests auf.
progressRate Wenn Sie progressRate auf eine number größer als 0 festlegen, generiert der Server automatisch Anforderungs- (Upload) und Antwort-Fortschrittsereignisse (Download). Jedes Fortschrittsereignis erhöht sich um progressRate Bytes.
progressRate gilt nur für Anforderungshandler vom Typ object .
disableTimeout() und enableTimeout() Diese Methoden deaktivieren oder aktivieren die Auswirkungen des timeout Attributs von MockXhr . Siehe „Das timeout Attribut und Anforderungs-Timeouts“.
Routen konfigurieren, wie der Server auf MockXhr -Anfragen reagiert. Ihre drei Teile werden im Folgenden beschrieben.
Das Routenkonzept basiert lose auf dem Express-Framework.
Jede string mit einer gültigen HTTP-Anforderungsmethode ist zulässig. Zu den gültigen Methoden gehören Standardmethoden wie GET , POST , PUT und DELETE sowie andere Methodennamen. Bei den Standardmethodennamen wird die Groß-/Kleinschreibung nicht beachtet.
Der Anforderungs-URL-Matcher kann einer dieser Typen sein:
string (z. B. '/my-url' ), die genau mit der URL der Anfrage übereinstimmt.RegExp der mit der URL der Anfrage übereinstimmt.Function , die true zurückgibt, wenn die URL der Anfrage übereinstimmt. Die Funktion erhält die URL als Argument. Der Anforderungshandler kann einer dieser Typen sein:
Ein object mit den Antworteigenschaften. Die Standardwerte sind:
{ status: 200, headers: {}, body: null, statusText: 'OK' }
Eine Function , die die Scheinantwortmethoden direkt aufruft. Als Argument erhält die Funktion eine MockXhrRequest Instanz.
Eine string mit dem Wert 'error' oder 'timeout' . Dies löst entweder einen Fehler oder eine Zeitüberschreitung aus.
Ein Array der anderen oben genannten Anforderungshandlertypen. Die erste Anfrage erhält den ersten Handler, die zweite den zweiten Handler und so weiter. Der letzte Handler wird wiederverwendet, wenn im Array keine weiteren Handler vorhanden sind.
Bei object fügt der Server automatisch den Content-Length -Antwortheader mit der Länge des Antworttexts hinzu.
Alle diese Handler sind gleichwertig:
const handlerObj = { } ;
const handlerFn = ( request ) => { request . respond ( 200 , { 'Content-Length' : '0' } ) ; } ;
const handlerArray = [ { } ] ; get(urlMatcher, handler)Argumente:
urlMatcher : URL-Matcher anfordern.handler : Anforderungshandler. Fügt eine Route für die GET HTTP-Methode hinzu.
post(urlMatcher, handler)Argumente:
urlMatcher : URL-Matcher anfordern.handler : Anforderungshandler. Fügt eine Route für die POST HTTP-Methode hinzu.
put(urlMatcher, handler)Argumente:
urlMatcher : URL-Matcher anfordern.handler : Anforderungshandler. Fügt eine Route für die HTTP-Methode PUT hinzu.
delete(urlMatcher, handler)Argumente:
urlMatcher : URL-Matcher anfordern.handler : Anforderungshandler. Fügt eine Route für die DELETE -HTTP-Methode hinzu.
addHandler(method, urlMatcher, handler)Argumente:
method : HTTP-Methode als string .urlMatcher : URL-Matcher anfordern.handler : Anforderungshandler. Fügt eine Route für die method HTTP-Methode hinzu.
setDefaultHandler(handler)Argumente:
handler : Anforderungshandler.Legt einen Standard-Anfragehandler für Anfragen fest, die keiner Route entsprechen.
setDefault404()Legt einen Standard-Anfragehandler fest, der 404-Antworten zurückgibt.
xhrFactory Funktion, die eine neue MockXhr Instanz zurückgibt.
MockXhr Die MockXhr -Klasse, in die sich der Server einklinkt. xhrFactory erstellt Instanzen dieser Klasse.
getRequestLog()Gibt ein Array aller bisher vom Server empfangenen Anfragen zurück. Jeder Aufruf gibt ein neues Array zurück. Jedes Array-Element ist ein Objekt mit diesen Eigenschaften:
method : HTTP- string .url : URL- string .body : Anfragetextheaders : Header als Objekt anfordern. Die Header-Namen sind in Kleinbuchstaben geschrieben.MockXhr Klasse Diese Klasse ist eine Nachbildung von XMLHttpRequest . In diesem Abschnitt werden die Methoden und Eigenschaften dokumentiert, die nicht in der Spezifikation enthalten sind.
MockXhr.timeoutEnabled Diese statische boolean Eigenschaft steuert die automatische Zeitüberschreitung von Anforderungen aller Instanzen der Klasse.
timeoutEnabled Diese boolean Eigenschaft steuert die automatische Zeitüberschreitung dieser MockXhr -Instanz.
getResponseHeadersHash()Gibt alle Antwortheader als Objekt zurück. Die Header-Namen sind in Kleinbuchstaben geschrieben.
MockXhr Lebenszyklus-Hooks Sie können an diesen Stellen Rückrufmethoden für die MockXhr Lebenszyklus-Hooks definieren:
MockXhr -Klasse. Der Hook gilt für alle Instanzen von MockXhr und seinen Unterklassen.MockXhr Unterklasse, die von MockXhrServer.MockXhr oder newMockXhr() zurückgegeben wird. Der Hook gilt für alle Instanzen dieser Klasse.MockXhr . Der Hook gilt nur für diese Instanz.Wenn Sie mehrere Hooks für ein Lebenszyklusereignis definieren, werden diese in der oben genannten Reihenfolge aufgerufen.
Im Allgemeinen sollten Sie die dritte Option bevorzugen, die die Isolierung Ihrer Testfälle erleichtert.
onCreateRückrufmethode, die diese Argumente empfängt:
xhr : Neue MockXhr Instanz. Verwenden Sie diesen Lebenszyklus-Hook, um Instanzen von MockXhr abzufangen, wenn sie erstellt werden.
Wird aufgerufen, wenn eine Instanz von MockXhr am Ende ihres Konstruktors erstellt wird. Dieser Lifecycle-Hook ist daher nur als statische Eigenschaft verfügbar.
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 ) => { /*...*/ } ; onSendRückrufmethode, die diese Argumente empfängt:
request : MockXhrRequest für die Anfrage.xhr : Die MockXhr Instanz.Verwenden Sie diesen Lebenszyklus-Hook, um mit den Scheinantwortmethoden auf eine Anfrage zu antworten.
Wird nach jedem Aufruf von send() asynchron aufgerufen. Jeder Aufruf von send() generiert einen Aufruf von onSend mit einer separaten Instanz von MockXhrRequest .
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 -Klasse Jeder Aufruf von send() erstellt eine MockXhrRequest , die Informationen über die XMLHttpRequest enthält und Methoden für die programmgesteuerte Reaktion bereitstellt.
requestHeaders Ein HeadersContainer , der eine Kopie der Header der Anfrage enthält.
method Eine string mit der HTTP-Methode der Anfrage.
url Eine string mit der URL der Anfrage.
bodyDer Text der Anfrage.
withCredentials Ein boolean mit dem withCredentials -Wert der Anforderung.
getRequestBodySize() number der Bytes im Anfragetext.
Hinweis: Dies ist nicht ganz korrekt, wenn der body ein multipart/form-data codierter FormData ist. Header, Codierung und andere Faktoren, die zur tatsächlichen body eines nicht simulierten XMLHttpRequest beitragen, werden nicht berücksichtigt. Mit dieser Methode können Sie einen Mindestwert für die tatsächliche body der Anfrage ermitteln. Dies ist nützlich, um Upload-Fortschrittsereignisse zu simulieren.
Diese Methoden stellen eine programmgesteuerte Schnittstelle zur Beantwortung von MockXhr Anfragen bereit.
Wenn ein Aufruf einer Antwortmethode ungültig ist, wird ein Error mit der Meldung "Mock usage error detected" ausgegeben.
uploadProgress(transmitted)Argumente:
transmitted : number der übertragenen Bytes.Löst einen Fortschritt beim Hochladen einer Anfrage aus.
Sie können dies nur aufrufen, wenn der body der Anfrage nicht null ist und der Upload nicht abgeschlossen ist.
Nachdem Sie diese Methode aufgerufen haben, können Sie jede andere Scheinantwortmethode verwenden.
respond(status = 200, headers = {}, body = null, statusText = 'OK')Argumente:
status : HTTP- number der Antwort. (optional)headers : object mit den Antwortheadern. (optional)body : Antworttext. (optional)statusText : string -Antwort-HTTP-Statustext. (optional) Vollständige Antwortmethode, die sowohl die Antwortheader als auch den Antworttext festlegt. Ändert den readyState der Anfrage in DONE .
Löst die entsprechenden Ereignisse wie readystatechange , progress und load aus.
Dies ist eine Abkürzung für setResponseHeaders() gefolgt von setResponseBody() .
Nachdem Sie diese Methode aufgerufen haben, können Sie keine anderen Scheinantwortmethoden mehr verwenden. Diese Einschränkung wird aufgehoben, wenn Sie open() erneut aufrufen.
setResponseHeaders(status = 200, headers = {}, statusText = 'OK')Argumente:
status : HTTP- number der Antwort. (optional)headers : object mit den Antwortheadern. (optional)statusText : string -Antwort-HTTP-Statustext. (optional) Legt die Antwortheader fest. Ändert den readyState der Anfrage in HEADERS_RECEIVED .
Löst die entsprechenden Ereignisse wie readystatechange , progress und load aus.
Nachdem Sie diese Methode aufgerufen haben, können Sie die folgenden Scheinantwortmethoden verwenden:
downloadProgress()setResponseBody()setNetworkError()setRequestTimeout() . downloadProgress(transmitted, length)Argumente:
transmitted : number der übertragenen Bytes.length : number der Bytes in der Antwort. Löst ein Antwortfortschrittsereignis aus. Ändert den readyState der Anfrage in LOADING wenn sie HEADERS_RECEIVED ist.
Sie müssen setResponseHeaders() vor dieser Methode aufrufen.
setResponseBody(body = null)Argumente:
body : Antworttext. (optional) Legt den Antworttext fest. Ändert den readyState der Anfrage in DONE .
Löst die entsprechenden Ereignisse wie readystatechange , progress und load aus.
Ruft setResponseHeaders() auf, falls nicht bereits aufgerufen. Die Antwortheader enthalten dann nur Content-Length mit einem Wert, der der Länge des Antworttextes entspricht.
Nachdem Sie diese Methode aufgerufen haben, können Sie keine anderen Scheinantwortmethoden mehr verwenden. Diese Einschränkung wird aufgehoben, wenn Sie open() erneut aufrufen.
setNetworkError() Simuliert einen Netzwerkfehler. Ändert den readyState der Anfrage in DONE .
Löst die entsprechenden Ereignisse aus, einschließlich des error .
Nachdem Sie diese Methode aufgerufen haben, können Sie keine anderen Scheinantwortmethoden mehr verwenden. Diese Einschränkung wird aufgehoben, wenn Sie open() erneut aufrufen.
setRequestTimeout() Simuliert ein Anforderungszeitlimit. Ändert den readyState der Anfrage in DONE .
Löst die entsprechenden Ereignisse aus, einschließlich des timeout Ereignisses.
Löst einen Fehler aus, wenn das request gleich 0 ist, da in diesem Fall keine Zeitüberschreitungen auftreten.
Nachdem Sie diese Methode aufgerufen haben, können Sie keine anderen Scheinantwortmethoden mehr verwenden. Diese Einschränkung wird aufgehoben, wenn Sie open() erneut aufrufen.
newMockXhr() Gibt eine neue MockXhr Unterklasse zurück.
Wenn Sie in jedem Testfall eine andere Unterklasse von MockXhr verwenden, ist es einfacher sicherzustellen, dass sie in sich geschlossen sind. Wenn Sie beispielsweise die statische Eigenschaft timeoutEnabled für eine Unterklasse festlegen, wirkt sich dies nur auf diese Unterklasse aus und nicht auf die anderen Unterklassen, die in anderen Testfällen erstellt wurden. Da Unterklassen nicht wiederverwendet werden, ist kein Bereinigungscode erforderlich, der die an einer Unterklasse vorgenommenen Änderungen rückgängig macht.
newServer(routes)Argumente:
routes : Objekt mit dem anfänglichen Routensatz des Servers. (optional) Gibt einen neuen MockXhrServer mit seiner eigenen eindeutigen MockXhr Unterklasse zurück. Siehe newMockXhr() .
Fügen Sie Routen zum MockXhrServer mit dem optionalen routes hinzu. Einzelheiten finden Sie im Konstruktor.
XMLHttpRequest FunktionenBasierend auf der XMLHTTPRequest-Spezifikationsversion „15. August 2022“.
open() , setRequestHeader() , send() und abort() .statusText , Header und Text.timeout Attribut (kann deaktiviert werden).MockXhr.setNetworkError() ).MockXhr.setRequestTimeout() ).overrideMimeType() löst bei Bedarf aus, hat aber keine andere Auswirkung.responseType : '' , 'text' und 'json' werden vollständig unterstützt. Die responseType Werte haben keine Auswirkung auf den an setResponseBody() übergebenen Antworttext.responseXml : Der Antworttext wird nicht in eine Dokumentantwort konvertiert. Um eine Dokumentantwort zu erhalten, übergeben Sie diese direkt als Antworttext in setResponseBody() .responseUrl : Die endgültige Anforderungs-URL nach Weiterleitungen wird nicht automatisch festgelegt. Dies kann in einem Request-Handler emuliert werden.async in open() auf false gesetzt).open() und Auslösen von SyntaxError bei Fehler. Mitwirkende sind willkommen! Weitere Informationen finden Sie in diesem Leitfaden.
MIT