Ich habe ein Ruby-Cucumber-Framework. Ich muss die Methode method_missing
verwenden, um zu vermeiden, einige sich wiederholende Funktionen zu schreiben. Wo sollte ich meine method_missing
platzieren? In jeder .rb
Datei unter der support
Ordner? Oder sollte es in einer anderen spezifischen Datei gehen?Wo sollte ich method_missing in einem Cucumber Ruby Framework definieren?
Antwort
definiert method_missing
wie jeder Cucumber Helper-Methode, in einer .rb
Datei im support
Verzeichnis und in einem Modul, das Sie dann zu the Cucumber World
passieren:
module MethodMissing
def method_missing(method)
puts "You said #{method}"
end
end
World MethodMissing
Sie dann in Schritt Definitionen fehlen Methoden aufrufen können.
Wie jede Cucumber-Helfer-Methode sollte method_missing
nur für die Gurke World
definiert werden. Wenn Sie es auf der obersten Ebene der Support-Datei definiert haben, wird es auf dem Top-Level-Objekt von Ruby definiert und überall verfügbar sein. Dies ist untergeordnet und kann anderen Code beschädigen.
Ich habe aufschieben bewusst nicht zu super
, da die World
nicht method_missing
nicht definiert, oder respond_to_missing?
definieren, da ich noch keine Pläne hatte method(:foo)
auf der World
zu nennen, aber man kann diese Dinge tun, wenn Sie es vorziehen, um sie immer zu tun, wenn Sie method_missing
definieren.
- 1. method_missing gotchas in Ruby
- 2. Ruby and Cucumber Projektstruktur
- 3. Sollte ich eine Hauptmethode in meinen Ruby-Skripten definieren?
- 4. Wo sollte ich namedtuple-Klassen in Python definieren - welcher Namespace?
- 5. Wo sollte ich benutzerdefinierte (De) Serializer in Lagom definieren?
- 6. In Zend-Framework, wo sollte ich den benutzerdefinierten Validator setzen?
- 7. Ruby Cucumber trimmen führende Null von String Cucumber
- 8. Wie bekomme ich die Bindung von method_missing?
- 9. Wo sollte ich Database.EnsureCreated platzieren?
- 10. Ruby Cucumber mehrzeilige Zitate mit Interpolation?
- 11. Schienen Capstrano rvm method_missing
- 12. Unterschied zwischen method_missing in Ruby Aufruf mit und ohne Klammern
- 13. ActiveRecord-Abhängigkeit mit Ruby, Rails, Cucumber & RSpec
- 14. HTML-Bericht für WebdriverIO/Cucumber-Framework erstellen
- 15. Wo (oder wie) sollte ich das Schema in einer Select-Anweisung definieren, wenn ich PostgreSQL verwende?
- 16. Wo sollte ich Navigationscode eingeben?
- 17. Wo sollte ich Dateien speichern
- 18. Wo sollte ich Entwicklungstools installieren?
- 19. Wo sollte ich Anwendungsdaten speichern?
- 20. Wo sollte ich Datenbankdateien speichern?
- 21. Wo Sicherheitsrollen definieren?
- 22. Haskell - Definieren einer Funktion mit Wachen in einem 'wo'
- 23. Wo sollte ich ANNOTATE_ITERATION_TASK platzieren?
- 24. Gibt es Ruby's method_missing in anderen Sprachen?
- 25. Wo sollte ich meinen JavaScript-Code eingeben?
- 26. Wann sollte ich Zahlen neu definieren?
- 27. Wo sollte ich gradle.properties in Jenkins setzen
- 28. Variablen in Ruby nicht definieren
- 29. Dynamische Klassenmethoden in Ruby definieren
- 30. Wo sollte ich Symbole für TabbedPage in Xamarin.Forms setzen
Versuchen Sie es hier: Post hat den Titel: "Override method_missing für Klassen- und Instanzmethoden?" und Sie könnten einige Ideen bekommen, wie es geht. http://stackoverflow.com/questions/22846777/override-method-missing-for-class-and-instance-methods – BKSpurgeon