Inilah cara yang murah dan mudah (meskipun tidak disarankan secara resmi):
Buat dir di root permata Anda disebut spec
, masukkan spesifikasi Anda di sana. Anda mungkin sudah menginstal rspec, tetapi jika tidak, lakukan saja gem install rspec
dan lupakan Gemfiles dan bundler.
Selanjutnya, Anda akan membuat spec, dan Anda harus memberi tahu di mana aplikasi Anda berada, di mana file Anda berada, dan termasuk file yang ingin Anda uji (beserta semua dependensinya):
# 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
Buka Terminal dan jalankan rspec:
~/awesome_gem $ rspec
..
Finished in 0.56 seconds
2 examples, 0 failures
Jika Anda ingin beberapa .rspec
opsi suka, buat .rspec
file dan letakkan di jalur root permata Anda. Milik saya terlihat seperti ini:
# .rspec
--format documentation --color --debug --fail-fast
Mudah, cepat, rapi!
Saya suka ini karena Anda tidak perlu menambahkan dependensi ke proyek Anda sama sekali, dan semuanya tetap sangat cepat. bundle exec
sedikit melambat, yang harus Anda lakukan untuk memastikan Anda menggunakan versi rspec yang sama setiap saat. 0,56 detik yang diperlukan untuk menjalankan dua tes 99% diambil pada saat komputer saya memuat rspec. Menjalankan ratusan spesifikasi harus sangat cepat. Satu-satunya masalah yang Anda bisa temui yang saya tahu adalah jika Anda mengubah versi rspec dan versi baru tidak kompatibel dengan beberapa fungsi yang Anda gunakan dalam pengujian Anda, Anda mungkin harus menulis ulang beberapa tes.
Ini bagus jika Anda melakukan spesifikasi satu kali atau memiliki alasan yang bagus untuk TIDAK memasukkan rspec di gemspec Anda, namun itu tidak terlalu baik untuk mengaktifkan berbagi atau menegakkan kompatibilitas.