--Je voulais écrire un test unitaire avec rspec
«Premièrement," Je vais faire quelque chose d'intéressant, c'est-à-dire quelque chose de drôle " --Compte de 1 à 40 ――Quand le nombre a 3, ça devient stupide ――Quand c'est un multiple de 3, ça devient stupide
omoro.rb
TSUJO_KAO_MOJI = "(・`ω ・ ´)" #Ordinaire
AHO_KAO_MOJI = "ʅ( ՞ਊ՞)ʃ≡" #Je vais être stupide
DOG_KAO_MOJI = "∪ ・ ω ・ ∪" #L'intention d'Inu
puts 'Je vais faire quelque chose d'intéressant, c'est-à-dire quelque chose de drôle'
(1..40).each do |figure|
  sleep 0.5
  
  if figure % 5 == 0
    puts figure.to_s + DOG_KAO_MOJI
    next
  end
  if figure % 3 == 0
    puts figure.to_s + AHO_KAO_MOJI
    next
  end
  if /3/ =~ figure.to_s
    puts figure.to_s + AHO_KAO_MOJI
    next
  end
  
  puts figure.to_s + TSUJO_KAO_MOJI
end
puts 'Demain'
ruby omoro.Courir sur rb
```Je vais faire quelque chose d'intéressant, c'est-à-dire quelque chose de drôle
1(・`ω ・ ´)
2(・`ω ・ ´)
3ʅ( ՞ਊ՞)ʃ≡
4(・`ω ・ ´)
5∪ ・ ω ・ ∪
6ʅ( ՞ਊ՞)ʃ≡
7(・`ω ・ ´)
8(・`ω ・ ´)
9ʅ( ՞ਊ՞)ʃ≡
10∪ ・ ω ・ ∪
11(・`ω ・ ´)
12ʅ( ՞ਊ՞)ʃ≡
13ʅ( ՞ਊ՞)ʃ≡
14(・`ω ・ ´)
15∪ ・ ω ・ ∪
16(・`ω ・ ´)
17(・`ω ・ ´)
18ʅ( ՞ਊ՞)ʃ≡
19(・`ω ・ ´)
20∪ ・ ω ・ ∪
21ʅ( ՞ਊ՞)ʃ≡
22(・`ω ・ ´)
23ʅ( ՞ਊ՞)ʃ≡
24ʅ( ՞ਊ՞)ʃ≡
25∪ ・ ω ・ ∪
26(・`ω ・ ´)
27ʅ( ՞ਊ՞)ʃ≡
28(・`ω ・ ´)
29(・`ω ・ ´)
30∪ ・ ω ・ ∪
31ʅ( ՞ਊ՞)ʃ≡
32ʅ( ՞ਊ՞)ʃ≡
33ʅ( ՞ਊ՞)ʃ≡
34ʅ( ՞ਊ՞)ʃ≡
35∪ ・ ω ・ ∪
36ʅ( ՞ਊ՞)ʃ≡
37ʅ( ՞ਊ՞)ʃ≡
38ʅ( ՞ਊ՞)ʃ≡
39ʅ( ՞ਊ՞)ʃ≡
40∪ ・ ω ・ ∪
Demain
l'a fait. Cependant, avec cela, il n'y a pas de méthode, tout le traitement est le même et un test unitaire ne peut pas être écrit. Méthodes séparées par responsabilité.
omoro_class.rb
class Omoro
  TSUKAMI = "Je vais faire quelque chose d'intéressant, c'est-à-dire quelque chose de drôle"
  OCHI = "Demain"
  TSUJO_KAO_MOJI = "(・`ω ・ ´)"
  AHO_KAO_MOJI = "ʅ( ՞ਊ՞)ʃ≡"
  DOG_KAO_MOJI = "∪ ・ ω ・ ∪"
  
  #Neta
  def main(max_kazu = 40)
    speak(TSUKAMI)
    
    (1..max_kazu).each do |figure|
      sleep 1
      kao_moji = verification(figure)
      serif = make_serif(figure, kao_moji)
      speak(serif)
    end
    
    speak(OCHI)
  end
  
  #Faire des lignes
  def make_serif(figure, kao_moji)
    figure.to_s + kao_moji
  end
  
  #decider
  def verification(figure)
    if figure % 5 == 0
      return DOG_KAO_MOJI
    end
    
    if figure % 3 == 0 || /3/ =~ figure.to_s
      return AHO_KAO_MOJI
    end
    TSUJO_KAO_MOJI
  end
  
  #parler
  def speak(serif)
    puts serif
  end
end
  
omoro = Omoro.new
omoro.main(40)
Le cours Omorrow est prêt. En passant, vous pouvez modifier dynamiquement le nombre maximum à compter en passant un nombre arbitraire à la méthode principale. Si vous entrez 400, vous serez un imbécile ou un chien de 300 à 399. C'est difficile si vous utilisez la puissance humaine, mais c'est facile si vous l'écrivez par programmation.
Écrivez un test. en train d'étudier. Je n'utilise pas let parce que je ne le comprends pas bien. Si vous avez un Masakari doux, écrivez un exemple dans les commentaires.
omoro_spec.rb
require 'rspec'
require_relative '../omoro_class'
RSpec.describe Omoro do
    TSUJO_KAO_MOJI = "(・`ω ・ ´)"
    AHO_KAO_MOJI = "ʅ( ՞ਊ՞)ʃ≡"
    DOG_KAO_MOJI = "∪ ・ ω ・ ∪"
  it 'Nombres(1)+ Caractère du visage((・`ω ・ ´))Pour générer les lignes de' do
    expect(Omoro.new.make_serif(1, TSUJO_KAO_MOJI)).to eq '1(・`ω ・ ´)'
  end
  it 'Nombres(3)+ Caractère du visage(3ʅ( ՞ਊ՞)ʃ≡)Pour générer les lignes de' do
    expect(Omoro.new.make_serif(3, AHO_KAO_MOJI)).to eq '3ʅ( ՞ਊ՞)ʃ≡'
  end
  it 'Inu' do
    expect(Omoro.new.make_serif(5, DOG_KAO_MOJI)).to eq '5∪ ・ ω ・ ∪'
  end
  it '3 est attaché' do
    expect(Omoro.new.make_serif(33, 'ʅ( ՞ਊ՞)ʃ≡')).to eq '33ʅ( ՞ਊ՞)ʃ≡'
  end
  it 'verification' do
    omoro = Omoro.new
    (1..40).each do |figure|
      if figure % 5 == 0
        expect(omoro.verification(figure)).to eq DOG_KAO_MOJI
      elsif figure % 3 == 0 || /3/ =~ figure.to_s
        expect(omoro.verification(figure)).to eq AHO_KAO_MOJI
      else
        expect(omoro.verification(figure)).to eq TSUJO_KAO_MOJI
      end
    end
  end
  it 'main' do
    omoro = Omoro.new
    expect { omoro.main(5) }.to output(
      "Je vais faire quelque chose d'intéressant, c'est-à-dire quelque chose de drôle\n1(・`ω ・ ´)\n2(・`ω ・ ´)\n3ʅ( ՞ਊ՞)ʃ≡\n4(・`ω ・ ´)\n5∪ ・ ω ・ ∪\n Omorrow\n").to_stdout
  end
end
Personnellement, je pense que la vérification et les principales méthodes peuvent être améliorées, mais je ne savais pas comment le faire.
[Katsura 3 fois \ -Wikipedia](https://ja.wikipedia.org/wiki/%E6%A1%82%E4%B8%89%E5%BA%A6#%E4%B8%96%E7%95% 8C% E3% 81% AE% E3% 83% 8A% E3% 83% 99% E3% 82% A2% E3% 83% 84)
[\ Ruby ] Test unitaire commençant par Rspec \ (Test unitaire ) \ | qs Developers