[RUBY] (´-`) .. oO (Je veux trouver facilement la sortie standard" Hello ".

Je suis nouveau sur Ruby.

Aujourd'hui, j'ai fait une tâche de râteau qui sort juste "Hello World".

# rake hoge:hello 
"Hello World"

J'aurais aimé avoir écrit un test pour m'assurer que le résultat contenait "Hello" et pourrais le trouver simplement en spécifiant une chaîne. .. ..

code

hoge_spec.rb


require 'rails_helper'
require 'rake'

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

  #Omission

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

    context 'Trouvez la sortie standard Hello' do

      it 'Bonjour avec sortie standard#1 Chaîne de caractères dans l'argument du matcher de sortie' do
        #* Type idéal. Cependant, il échoue car il ne correspond pas exactement. .. ..
        expect{ @rake[task].invoke() }.to output('Hello').to_stdout
      end

      it 'Bonjour avec sortie standard#2 Expression régulière dans l'argument du matcher de sortie' do
        #* Cela fonctionne, mais il est difficile d'utiliser la correspondance d'expression régulière. .. ..
        expect{ @rake[task].invoke() }.to output(/Hello/).to_stdout
      end

      it 'Bonjour avec sortie standard#Match partiel avec 3 inclus' do
        #* Cela fonctionne, mais le code est long. .. ..
        $stdout = StringIO.new
        @rake[task].invoke()
        output_text = $stdout.string
        $stdout = STDOUT
        expect(output_text).to include 'Hello'
      end
    end
  end

end

Résultat d'exécution

image.png

image.png

... J'ai pensé que ce serait bien si je pouvais spécifier une chaîne de caractères (# 1), mais une erreur. Le seul moyen d'atteindre l'objectif est d'utiliser une expression régulière (# 2) ou d'affecter la sortie standard à une variable (# 3). .. .. Je me demande s'il existe un bon moyen.

Recommended Posts

(´-`) .. oO (Je veux trouver facilement la sortie standard" Hello ".
Je souhaite simplifier la sortie du journal sur Android
Je souhaite modifier le paramètre de sortie du journal de UtilLoggingJdbcLogger
[Java] Je souhaite tester l'entrée standard et la sortie standard avec JUnit
[Java] Colorez la sortie standard vers le terminal
Je veux écrire une JSP dans Emacs plus facilement que la valeur par défaut.
Je veux var_dump le contenu de l'intention
Je veux tronquer après la virgule décimale
Je veux obtenir la valeur en Ruby
[Java] Je souhaite calculer la différence par rapport à la date
Je veux intégrer n'importe quel TraceId dans le journal
Je veux juger la gamme en utilisant le diplôme mensuel
Je veux connaître la réponse de l'application Janken
Je souhaite afficher le nom de l'affiche du commentaire
Je souhaite utiliser le mode sombre avec l'application SWT
Je veux appeler la méthode principale en utilisant la réflexion
[Commentaire approximatif] Je veux épouser la méthode du pluck
Je veux retourner la position de défilement de UITableView!
Je souhaite ajouter une fonction de suppression à la fonction de commentaire
Je veux afficher quel caractère une chaîne de caractères arbitraire apparaît à partir de la gauche
Je veux savoir quelle version de java le fichier jar que j'ai est disponible
[Débutant] Je souhaite modifier le fichier de migration-Comment utiliser la restauration-
Je veux trouver un chemin relatif dans une situation où Path est utilisé
[Rails] [bootstrap] Je souhaite modifier la taille de la police de manière réactive
Je veux convertir des caractères ...
Je souhaite utiliser l'applet Java facilement sur la ligne de commande sans utiliser l'IDE
Je veux amener Tomcat sur le serveur et démarrer l'application
Je veux appeler une méthode et compter le nombre
Je souhaite utiliser l'API Java 8 DateTime lentement (maintenant)
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Je souhaite utiliser la méthode de désinfection autre que View.
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
Je veux mettre le JDK sur mon PC Mac
Je souhaite sauvegarder facilement les fichiers utilisés au travail
Je veux donner un nom de classe à l'attribut select
Je souhaite rechercher de manière récursive la liste des classes sous le package
Je souhaite passer au même écran dans l'état enregistré
Je souhaite renvoyer plusieurs valeurs de retour pour l'argument saisi
[Ruby] Je souhaite inverser l'ordre de la table de hachage
Je veux passer la commande de démarrage à postgres avec docker-compose.
Je veux savoir si la chaîne de caractères spécifiée est prise en charge par le code de caractère cible
Je souhaite simplifier l'instruction if-else de la branche conditionnelle en Java
Je souhaite accorder des autorisations de modification et de suppression uniquement à l'affiche
Je veux revenir à l'écran précédent avec kotlin et java!
L'histoire de Collectors.groupingBy que je veux garder pour la postérité
[Eclipse] Je souhaite ouvrir le même fichier deux fois [Éditeur fractionné]
Je veux limiter l'entrée en réduisant la plage de nombres
Je veux ajouter l'option désactivée à f.radio_button en fonction de la condition
Je veux supprimer la marge supérieure dans UITableView de Grouped (swift)
[Java] Je veux effectuer distinctement avec la clé dans l'objet