Inhaltsverzeichnis
Frageninhalt
http-Handler
Einheitentests
Verarbeiten Sie den zurückgegebenen Dateistream
Workaround
Heim Backend-Entwicklung Golang Unittest eines HTTP-Handlers, der mehrere Dateistreams zurückgibt

Unittest eines HTTP-Handlers, der mehrere Dateistreams zurückgibt

Feb 09, 2024 am 08:39 AM
Reflow

对返回多个文件流的 HTTP 处理程序进行单元测试

In diesem Artikel stellt der PHP-Editor Strawberry vor, wie man einen HTTP-Handler testet, der mehrere Dateistreams zurückgibt. Während des Entwicklungsprozesses stoßen wir häufig auf Situationen, in denen mehrere Dateiströme zurückgegeben werden müssen, z. B. Bildkomprimierung, Dateizusammenführung usw. Allerdings ist Unit-Test in diesem Fall nicht so einfach zu implementieren. In diesem Artikel erfahren Sie, wie Sie mit den entsprechenden Tools und Techniken effektive Komponententests schreiben, um sicherzustellen, dass unsere HTTP-Handler mehrere Dateiströme korrekt zurückgeben.

Frageninhalt

http-Handler

Ich habe einen HTTP-Handler wie diesen:

func routehandler(c echo.context) error {
    outs := make([]io.reader, 5)
    for i := range outs {
        outs[i] = // ... comes from a logic.
    }

    return c.stream(http.statusok, "application/binary", io.multireader(outs...))
}
Nach dem Login kopieren

Einheitentests

Ich habe vor, einen Unit-Test für einen http-Handler zu schreiben und den Rückgabestrom für mehrere Dateien zu untersuchen.

Meine Unit-Tests haben diese Hilfstypen und -funktionen:

type handler func(echo.context) error

// send request to a handler. get back response body.
func send(req *http.request, handler handler) ([]byte, error) {
    w := httptest.newrecorder()
    e := echo.new()
    c := e.newcontext(req, w)
    // call the handler.
    err := handler(c)
    if err != nil {
        return nil, err
    }
    res := w.result()
    defer res.body.close()
    return ioutil.readall(res.body)
}
Nach dem Login kopieren

Ich sende dann eine Anfrage an den http-Handler meines Unit-Tests mit den oben genannten Typen und Funktionen:

// From within my unit test:

// Initialize request...

var data []byte
data, err := Send(request, RouteHandler)

// How to separate the multiple files returned here?
// How to work with the returned data?
Nach dem Login kopieren

Verarbeiten Sie den zurückgegebenen Dateistream

Wie trenne ich mehrere vom HTTP-Handler zurückgegebene Dateien? Wie verwende ich den vom HTTP-Handler zurückgegebenen Datenstrom?

Workaround

...Mögliche Optionen: Schreiblänge gefolgt vom Dateiinhalt...

Tatsächlich ist die oben von @CeriseLimón kommentierte Option bereits implementiert und wird vom Frontend verwendet.

Das obige ist der detaillierte Inhalt vonUnittest eines HTTP-Handlers, der mehrere Dateistreams zurückgibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ist Ace Racing Post-Holiday-Syndrom: Die wirklich erfahrenen Fahrer haben bereits begonnen, sich auf das Laternenfest vorzubereiten Ist Ace Racing Post-Holiday-Syndrom: Die wirklich erfahrenen Fahrer haben bereits begonnen, sich auf das Laternenfest vorzubereiten Feb 21, 2024 pm 06:04 PM

Das Laternenfest steht vor der Tür. Ace Racing hat speziell für alle eine Rätselrate-Aktivität vorbereitet. Wenn Sie die Rätsel erraten und 6 Fragen richtig beantworten, können Sie eine Goldmünzen-Belohnung erhalten können auch großzügige Belohnungen erhalten. Spezifische Details Werfen wir einen Blick auf die Details dieser Veranstaltung. Ist Ace Racing Post-Holiday-Syndrom: Die wirklich erfahrenen Fahrer haben bereits begonnen, sich auf das Laternenfest vorzubereiten. Hallo, liebe Fahrer, sie alle sagen, dass das Frühlingsfest erst nach dem Laternenfest zu Ende ist. Essen Sie Klebreisbällchen und zünden Sie ein Feuerwerk ... das Festival of Speed ​​ist überall. In der festlichen und lebhaften Atmosphäre des Festivals hat Xili auch einige interessante Laternenrätsel vorbereitet, die „nur wirklich erfahrene Fahrer“ für jedermann zugänglich sind Machen Sie sich im Voraus warm. Lassen Sie uns gemeinsam raten. (PS: Fahrer können zum heutigen öffentlichen Account-Tweet gehen, um die Antwort zu sehen!) Wie wäre es, Fahrer?

„Collapsed Star Railroad' Mikhail Wo gehst du hin Erfolgsführer „Collapsed Star Railroad' Mikhail Wo gehst du hin Erfolgsführer May 09, 2024 pm 09:20 PM

Einklappen Star Railroad Wohin gehst du? Mikhail-Erfolgsführer. Mit dem Update auf Version 2.2 von Honkai Dome Railway können viele neue Inhalte im Spiel erlebt werden. Ich glaube, dass viele Freunde beim Abschluss des Erfolgs „Wohin gehst du, Mikhail?“ auf einige Schwierigkeiten gestoßen sind Ich weiß nicht, wie ich es abschließen soll, deshalb werde ich Sie heute durch den detaillierten Prozess führen. Leitfaden zur eingestürzten Star Railroad Wohin gehst du? Mikhail 1. Als wir die Fähigkeiten der Tongtun-Pioniere übernahmen und die Krise in Sinoconni lösten, beruhigte sich alles und wir kehrten zum Gipfel des Flowing Dream Reef zurück das Bild unten; 2. Nachdem Sie es erreicht haben, schauen Sie sich Mikhail noch einmal an und untersuchen Sie den Balkon vor ihm. 3. Nachdem Sie die Untersuchung abgeschlossen haben, können Sie den Erfolg Mikhail erhalten

Wie beantrage ich ein QQ-Backup-Postfach mit QQ-Postfach? So beantragen Sie ein QQ-Backup-Postfach mit QQ-Postfach Wie beantrage ich ein QQ-Backup-Postfach mit QQ-Postfach? So beantragen Sie ein QQ-Backup-Postfach mit QQ-Postfach Mar 05, 2024 am 09:30 AM

Der Artikel, der Ihnen heute präsentiert wird, handelt von der QQ-Mailbox-Software. Wissen Sie, wie Sie eine QQ-Backup-Mailbox mit QQ-Mailbox beantragen? . Nachdem Sie sich bei Ihrem QQ-Postfach angemeldet haben, können Sie auf der Startseite Ihres Postfachs nach einem Symbol mit einem Dreieckslogo suchen. Wenn Sie das Symbol nicht finden können, können Sie detaillierte Anmerkungen zum Bild anzeigen, um das Auffinden zu erleichtern. Nachdem Sie es gefunden haben, klicken Sie auf das 3-Eck-Logo und dann auf die Schaltfläche „Backup-E-Mail beantragen“. Nach dem Klicken klicken wir auf die Schaltfläche „E-Mail-Konto“ in der oberen rechten Ecke der gerade erschienenen Seite. Nach dem Klicken geben wir den neuen Registrierungs-E-Mail-Namen, das Passwort, die Mobiltelefonnummer und andere Vorgänge ein und klicken dann auf die Registrierungsschaltfläche. Nachdem die Registrierung abgeschlossen ist, kehren wir gerade zur E-Mail-Seite zurück und klicken auf das gerade aufgetauchte Feld, um die Kontonummer einzugeben.

Dogelon Mars价格预测2024-2030 Dogelon Mars价格预测2024-2030 Mar 22, 2024 pm 03:33 PM

ELON 在 2023 年达到 0.0000005196 美元的峰值,此后一直在下跌。我们的 Dogelon Mars 价格预测估计到 2024 年底的价格为 $0.0000001409。根据我们 2025 年 Dogelon Mars 的价格预测,ELON 的交易价格为 0.0000004709 美元。

Wie kann das Douyin-Verkehrslimit gelöst werden? Was soll ich tun, wenn der Verkehr begrenzt ist, sodass er zurückfließen kann? Wie kann das Douyin-Verkehrslimit gelöst werden? Was soll ich tun, wenn der Verkehr begrenzt ist, sodass er zurückfließen kann? Mar 22, 2024 am 09:00 AM

Mit der Popularität von Douyin nehmen auch die Probleme, mit denen Benutzer häufig konfrontiert sind, allmählich zu. Am besorgniserregendsten ist das Problem der Verkehrsbeschränkung von Douyin. Die Verkehrsbeschränkung von Douyin kann zu einer erheblichen Verringerung der Anzahl der Aufrufe, Likes und Kommentare zu den Videos der Nutzer führen und sich dadurch auf das Einkommen und die Bekanntheitsmöglichkeiten der Nutzer auswirken. 1. Wie kann das Verkehrslimit von Douyin gelöst werden? 1. Verbessern Sie die Qualität der Inhalte. Die zentrale Wettbewerbsfähigkeit von Douyin liegt im Inhalt. Nur qualitativ hochwertige Inhalte können mehr Benutzer anziehen. Daher ist die Verbesserung der Inhaltsqualität der Schlüssel zur Lösung des aktuellen Einschränkungsproblems von Douyin. Schöpfer müssen sich auf Content-Innovation konzentrieren, Benutzer mit einzigartigen Perspektiven und Kreativität anlocken und gleichzeitig sicherstellen, dass die Inhalte interessant, lehrreich und praktisch sind. Nur so kann die User Experience kontinuierlich verbessert und die User Stickiness erhöht werden. 2. Passen Sie die Veröffentlichungszeit an. Die Verkehrsverteilung von Douyin hat ein Zeitmuster.

Tausende Menschen standen Schlange für die letzte Beta von „Taris World'. Warum hat sie so viel Aufmerksamkeit erregt? Tausende Menschen standen Schlange für die letzte Beta von „Taris World'. Warum hat sie so viel Aufmerksamkeit erregt? Mar 21, 2024 pm 02:50 PM

Am 18. März startete das von Beijing Ledong Zhuoyue unabhängig entwickelte und von Tencent vertriebene interaktive Dual-End-Handyspiel „Taris World“ seinen letzten Test am Vorabend. Es ist eine kleine Hommage an die Klassiker und ich glaube, dass Spieler, die MMO-Spiele mögen, wieder eine neue Welt finden können. Wenn man sich an die Tests im Ausland im November letzten Jahres erinnert, zog die extrem hohe Spielqualität eine große Anzahl ausländischer Spieler und viele große MMORPG-Moderatoren an, sich zum Spielen anzumelden, nachdem der letzte Test am Vorabend des nationalen Servers um 10 Uhr gestartet wurde. Am 18. März strömten zahlreiche Spieler zum Spiel. Auch wenn sich einige Spieler nicht für den Test qualifizierten, standen innerhalb weniger Minuten Zehntausende Menschen an Man kann sagen, dass der letzte Test am Vorabend des Nationalservers noch größer ist. (Bildquelle stammt aus dem Internet) Da „

Wie kann ich den verlorenen mobilen Steam-Token wiederherstellen? Steam-Einspruchsleitfaden Wie kann ich den verlorenen mobilen Steam-Token wiederherstellen? Steam-Einspruchsleitfaden Mar 14, 2024 pm 10:07 PM

Wenn ich den mobilen Steam-Token verwende, stelle ich fest, dass der Token verschwunden ist. Was soll ich tun? Wenn kein Token vorhanden ist, kann die Sicherheitsüberprüfung des Steam-Kontos nicht durchgeführt werden. Wie können wir den mobilen Steam-Token abrufen? Im folgenden Editor erfahren Sie, wie Sie einen verlorenen mobilen Steam-Token beantragen können. Das Einspruchs-Tutorial lautet wie folgt: 1. Rufen Sie die Steam-Kundendienstseite Steam-Kundendienst auf und wählen Sie die Option im roten Feld aus. 2. Wählen Sie den entsprechenden Inhalt entsprechend Ihrer eigenen Situation aus. Wenn Ihr Konto gestohlen wurde oder Ihr Passwort verloren gegangen ist, wählen Sie in der Regel die Option im ersten roten Feld aus. 3. Wählen Sie die Option im roten Feld aus. 4. Geben Sie Ihren Kontonamen (Anmelde-ID, kein persönlicher Spitzname), Ihre gebundene E-Mail-Adresse oder gebundene Mobiltelefonnummer ein und klicken Sie dann auf

So erhalten Sie Geld per WeChat-Überweisung zurück So erhalten Sie Geld per WeChat-Überweisung zurück May 08, 2024 pm 01:18 PM

1. Öffnen Sie die WeChat-App, suchen Sie die Übertragungsnachricht, die zurückgegeben werden muss, und klicken Sie zur Eingabe. 2. Suchen Sie in der Benutzeroberfläche mit den Übertragungsdetails nach der Option [Zurück] und klicken Sie darauf. 3. Klicken Sie im Popup-Fenster auf die Schaltfläche [Zurückgeben], um das überwiesene Geld zurückzuerstatten.

See all articles