Ich habe einige allgemeine Methoden in ein paar verschiedenen Spezifikationen verwendet, ich möchte sie an einen Ort wie ein spec Helfer extrahieren, die aus allen Spezifikationen zugänglich ist. Weiß jemand, wie man das macht?Erstellen eines Spezifikationshelfers in rubymotion
Antwort
Hier ist etwas, das wie ein spec_helper quatscht.
# _spec_helper.rb
module SpecHelper
::App::Persistence = {}
# global `before :each` ish
def self.extended(base)
base.before do
::App::Persistence.clear
end
end
def foo_helper
end
end
Und dann verwenden:
# my_view_spec.rb
describe "MyView" do
extend SpecHelper
before do
foo_helper
end
...
Zwei Dinge im Auge zu behalten:
Spec Hilfsdatei in einer solchen Art und Weise benannt wird, dass sie zum ersten Mal geladen wird (was Unterstrich)
Beim Ausführen einzelner Spezifikationen (z.B.
files=my_view_spec.rb
) Hilfsdatei mitgehen muss -files=spec/my_view_spec.rb,spec/_spec_helper.rb
ich meine nur gängige Methoden in Spezifikationen verwendet werfen, da sie (nicht in einem Module
oder etwas gekapselt) in einem spec/support/utilities.rb Datei und Rubymotion scheint sie gut aufzunehmen, obwohl ich nicht weiß, ob dies der "richtige" Weg ist, dies zu tun.
Nach aktuellen http://www.rubymotion.com/developer-center/articles/testing/#_spec_helpers
Spec Helfer sind unter der spec/Helfer Verzeichnis eines RubyMotion Projekt erstellt. Ein Beispiel könnte spec/helpers/extension.rb sein.
- 1. Mit @selector in RubyMotion
- 2. Raise NSError in RubyMotion
- 3. Wie ein MD5-Hash eines Strings in RubyMotion
- 4. Kann ich RubyMotion-Apps mit dem Interface Builder erstellen?
- 5. Rubymotion und Pointer zu Structs
- 6. Code-Vervollständigung für MacRuby/PyObjC/RubyMotion
- 7. Rubymotion Übersetzung von SendBird SDK Methoden
- 8. Probleme mit neuen RubyMotion und Joybox
- 9. Rubymotion: Zip-Datei herunterladen und extrahieren in iOS
- 10. Wie füge ich meiner RubyMotion Android App ein Symbol hinzu?
- 11. Wie kann ich einen anderen Simulator mit Rubymotion Befehlszeile
- 12. Erstellen eines Lexers in C
- 13. Erstellen eines Bandbreitenpools in Python
- 14. Erstellen eines Sternenhintergrunds in CSS
- 15. Erstellen eines Hubverhalten in R
- 16. Erstellen eines Candlestickgraph in Android
- 17. Erstellen eines Klassenobjekts in C++
- 18. Erstellen eines Histogramms in Ruby
- 19. Erstellen eines Ladefensters in PyQt4
- 20. Erstellen eines Gitters in Java
- 21. Erstellen eines Programms in R
- 22. Erstellen eines Overlays in CSS?
- 23. Erstellen eines Dateipfads in C#
- 24. Erstellen eines Dienstes in Android
- 25. Erstellen eines Sounds in iOS
- 26. Erstellen eines Gitters in mapinfo
- 27. Erstellen eines Umgebungsdatentyps in Haskell
- 28. Erstellen eines Linkverkürzers in Django
- 29. Erstellen eines CTE in Oracle
- 30. Erstellen eines Formulars in SharePoint
Ich habe diese Lösung verwendet, um ein etwas anderes Problem zu lösen, also vielen Dank dafür! Ich hoffe, dass so etwas "Offizielles" irgendwann in Rubymotion Einzug hält. –