L'argument passé à Nokogiri est moqué et testé, alors laissez-le.
FUGA_FUGA = ['Compagnie', 'secret']
def hogegiri_method(fuga)
HOGE_COUNT = 5
HOGE_COUNT.times do |time|
html = Nokogiri::HTML(OpenURI.open_uri(url))
a, b, c =Expression régulière duveteuse
break if FUGAFUGA.include?(a)
end
{ a: a, b: b, c: c }
end
C'est un code qui ressemble à de la merde parce que c'est un code qui ne peut pas être affiché de différentes manières, mais cette fois, je veux créer une fausse valeur de retour comme une simulation.
html = Nokogiri::HTML(OpenURI.open_uri('secret'))
ici
Cependant, il est difficile de définir la valeur de retour de Nokogiri directement avec and_return.
Tel
En d'autres termes, vous devez laisser nokogiri faire le travail, mais n'accédez pas à l'URL et obtenez les données souhaitées.
Alors que faire
OpenUri.open_uri
Mock la valeur de retour de ce gars et passer la valeur à passer à l'argument de Nokogiri.
Il semble que le HTML que vous souhaitez analyser soit inclus dans l'argument de Nokogiri. Ensuite, dans l'environnement de production, vous pouvez copier le code HTML de l'URL à accéder et à récupérer, créer un fichier html, le coller là-bas et l'utiliser comme simulation de la valeur de retour! !! Je n'ai pas écrit d'article sur la facilité avec laquelle c'était.
Réponse finale
spec/test.html
Copie HTML
allow(OpenURI).to receive(:open_uri).and_return(File.new("#{Rails.root}/spec/test.html"))
Achevée
Maintenant, la méthode fonctionne comme si vous accédiez à l'url et la récupériez.
De plus, si vous faites l'argument de ʻand_return comme
nil, File.new ("# {Rails.root} /spec/test.html") `et que vous ne pouvez pas obtenir la valeur car la logique de la méthode créée cette fois-ci, c'est jusqu'à 5 Puisqu'il boucle des temps, vous pouvez également confirmer qu'il est en boucle.
Depuis que j'ai commencé le stage, je fais des choses que je ne ferais jamais dans le développement personnel, donc je vais rester coincé à chaque fois
Peut avoir grandi un peu
Recommended Posts