[RUBY] (´-`) .. oO (Ich möchte die Standardausgabe" Hallo "leicht finden.

Ich bin neu bei Ruby.

Heute habe ich eine Rechenaufgabe gemacht, die nur "Hello World" ausgibt.

# rake hoge:hello 
"Hello World"

Ich wünschte, ich hätte einen Test geschrieben, um zu bestätigen, dass "Hallo" im Ergebnis enthalten war, und es gab eine einfache Möglichkeit zur Suche durch Angabe einer Zeichenfolge. .. ..

Code

hoge_spec.rb


require 'rails_helper'
require 'rake'

RSpec.describe 'Hoge', type: :task do

  #Unterlassung

  describe 'rake hoge:hello' do
    let(:task) { 'hoge:hello' }

    context 'Finden Sie die Standardausgabe Hallo' do

      it 'Hallo mit Standardausgabe#1 Zeichenfolge im Argument des Ausgabe-Matchers' do
        #* Idealer Typ. Es schlägt jedoch fehl, da es nicht genau übereinstimmt. .. ..
        expect{ @rake[task].invoke() }.to output('Hello').to_stdout
      end

      it 'Hallo mit Standardausgabe#2 Regulärer Ausdruck im Argument des Ausgabe-Matchers' do
        #* Es funktioniert, aber es ist schwierig, die Übereinstimmung mit regulären Ausdrücken zu verwenden. .. ..
        expect{ @rake[task].invoke() }.to output(/Hello/).to_stdout
      end

      it 'Hallo mit Standardausgabe#Teilweise Übereinstimmung mit 3 gehören' do
        #* Es funktioniert, aber der Code ist lang. .. ..
        $stdout = StringIO.new
        @rake[task].invoke()
        output_text = $stdout.string
        $stdout = STDOUT
        expect(output_text).to include 'Hello'
      end
    end
  end

end

Ausführungsergebnis

image.png

image.png

... Ich dachte, es wäre schön, wenn ich eine Zeichenkette (# 1), aber einen Fehler angeben könnte. Die einzige Möglichkeit, diesen Zweck zu erreichen, besteht darin, einen regulären Ausdruck (Nr. 2) zu verwenden oder die Standardausgabe einer Variablen (Nr. 3) zuzuweisen. .. .. Ich frage mich, ob es einen guten Weg gibt.

Recommended Posts

(´-`) .. oO (Ich möchte die Standardausgabe" Hallo "leicht finden.
Ich möchte die Protokollausgabe unter Android vereinfachen
Ich möchte die Protokollausgabeeinstellung von UtilLoggingJdbcLogger ändern
[Java] Ich möchte Standardeingabe und Standardausgabe mit JUnit testen
[Java] Färben Sie die Standardausgabe an das Terminal
Ich möchte JSP in Emacs einfacher als die Standardeinstellung schreiben.
Ich möchte den Inhalt der Absicht var_dump
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte den Wert in Ruby erhalten
[Java] Ich möchte die Differenz zum Datum berechnen
Ich möchte eine TraceId in das Protokoll einbetten
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Namen des Posters des Kommentars anzeigen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte die Hauptmethode mit Reflektion aufrufen
[Grober Kommentar] Ich möchte die Zupfmethode heiraten
Ich möchte die Bildlaufposition von UITableView zurückgeben!
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen
Ich möchte ausgeben, welches Zeichen eine beliebige Zeichenfolge von links erscheint
Ich möchte herausfinden, welche Java-Version die JAR-Datei hat, die ich habe
[Anfänger] Ich möchte die Migrationsdatei ändern.
Ich möchte einen relativen Pfad in einer Situation finden, in der Pfad verwendet wird
[Rails] [Bootstrap] Ich möchte die Schriftgröße entsprechend ändern
Ich möchte Zeichen konvertieren ...
Ich möchte Java Applet einfach in der Befehlszeile verwenden, ohne IDE zu verwenden
Ich möchte Tomcat auf den Server bringen und die Anwendung starten
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich möchte die Java 8 DateTime-API (jetzt) langsam verwenden.
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich möchte eine andere Desinfektionsmethode als Ansicht verwenden.
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich möchte das JDK auf meinem Mac-PC installieren
Ich möchte Dateien, die bei der Arbeit verwendet werden, einfach sichern
Ich möchte dem select-Attribut einen Klassennamen geben
Ich möchte die Liste der Klassen unter dem Paket rekursiv durchsuchen
Ich möchte im gespeicherten Zustand zum selben Bildschirm wechseln
Ich möchte mehrere Rückgabewerte für das eingegebene Argument zurückgeben
[Ruby] Ich möchte die Reihenfolge der Hash-Tabelle umkehren
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
Ich möchte herausfinden, ob die angegebene Zeichenfolge vom Zielzeichencode unterstützt wird
Ich möchte die if-else-Anweisung für bedingte Verzweigungen in Java vereinfachen
Ich möchte nur dem Poster Bearbeitungs- und Löschberechtigungen erteilen
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
Die Geschichte von Collectors.groupingBy, die ich für die Nachwelt behalten möchte
[Eclipse] Ich möchte dieselbe Datei zweimal öffnen. [Split-Editor]
Ich möchte die Eingabe begrenzen, indem ich den Zahlenbereich einschränke
Ich möchte die deaktivierte Option abhängig von der Bedingung zu f.radio_button hinzufügen
Ich möchte den oberen Rand in der UITableView von Grouped entfernen (schnell)
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten