Hier ist ein billiger und einfacher (wenn auch nicht offiziell empfohlener) Weg:
Machen Sie ein Verzeichnis in der Wurzel Ihres Edelsteins spec
, geben Sie Ihre Spezifikationen dort ein. Sie haben wahrscheinlich bereits rspec installiert, aber wenn Sie dies nicht tun, machen Sie einfach eine gem install rspec
und vergessen Sie Gemfiles und Bundler.
Als Nächstes erstellen Sie eine Spezifikation und müssen angeben, wo sich Ihre App befindet, wo sich Ihre Dateien befinden und die zu testende Datei (zusammen mit den vorhandenen Abhängigkeiten) angeben:
# spec/awesome_gem/awesome.rb
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
$: << File.join(APP_ROOT, 'lib/awesome_gem') # so rspec knows where your file could be
require 'some_file_in_the_above_dir' # this loads the class you want to test
describe AwesomeGem::Awesome do
before do
@dog = AwesomeGem::Awesome.new(name: 'woofer!')
end
it 'should have a name' do
@dog.name.should eq 'woofer!'
end
context '#lick_things' do
it 'should return the dog\'s name in a string' do
@dog.lick_things.should include 'woofer!:'
end
end
end
Öffnen Sie das Terminal und führen Sie rspec aus:
~/awesome_gem $ rspec
..
Finished in 0.56 seconds
2 examples, 0 failures
Wenn Sie einige .rspec
Optionen lieben möchten , .rspec
erstellen Sie eine Datei und legen Sie sie im Stammpfad Ihres Edelsteins ab. Meins sieht so aus:
# .rspec
--format documentation --color --debug --fail-fast
Einfach, schnell, ordentlich!
Ich mag das, weil Sie Ihrem Projekt überhaupt keine Abhängigkeiten hinzufügen müssen und das Ganze sehr schnell bleibt. bundle exec
verlangsamt die Dinge ein wenig, was Sie tun müssen, um sicherzustellen, dass Sie immer dieselbe Version von rspec verwenden. Die 0,56 Sekunden, die zum Ausführen von zwei Tests benötigt wurden, waren zu 99% belegt, als mein Computer zum Laden von rspec benötigte. Das Ausführen von Hunderten von Spezifikationen sollte extrem schnell sein. Das einzige Problem, auf das Sie stoßen könnten, ist, dass Sie möglicherweise einige Tests neu schreiben müssen, wenn Sie die Versionen von rspec ändern und die neue Version nicht abwärtskompatibel mit einer Funktion ist, die Sie in Ihrem Test verwendet haben.
Dies ist hilfreich, wenn Sie einmalige Spezifikationen ausführen oder einen guten Grund haben, rspec NICHT in Ihre gemspec aufzunehmen. Es ist jedoch nicht sehr gut, um das Teilen zu ermöglichen oder die Kompatibilität zu erzwingen.