Đây là một cách rẻ và dễ dàng (mặc dù không được đề xuất chính thức):
Tạo một thư mục trong thư mục gốc của đá quý của bạn được gọi spec
, đặt thông số kỹ thuật của bạn vào đó. Bạn có thể đã cài đặt rspec, nhưng nếu bạn không, chỉ cần làm gem install rspec
và quên Gemfiles và gói.
Tiếp theo, bạn sẽ tạo một thông số kỹ thuật và bạn cần cho ứng dụng biết ứng dụng của bạn ở đâu, nơi chứa các tệp của bạn và bao gồm tệp bạn muốn kiểm tra (cùng với mọi phụ thuộc mà nó có):
# 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
Mở Terminal và chạy rspec:
~/awesome_gem $ rspec
..
Finished in 0.56 seconds
2 examples, 0 failures
Nếu bạn muốn một số .rspec
tùy chọn yêu thích, hãy tạo một .rspec
tệp và đặt nó vào đường dẫn gốc của gem. Của tôi trông như thế này:
# .rspec
--format documentation --color --debug --fail-fast
Dễ dàng, nhanh chóng, gọn gàng!
Tôi thích điều này bởi vì bạn không cần phải thêm bất kỳ sự phụ thuộc nào vào dự án của bạn, và toàn bộ điều này vẫn còn rất nhanh. bundle exec
làm mọi thứ chậm lại một chút, đó là những gì bạn phải làm để đảm bảo rằng bạn đang sử dụng cùng một phiên bản rspec mọi lúc. 0,56 giây đó để chạy hai bài kiểm tra đã mất 99% khi máy tính của tôi tải lên rspec. Chạy hàng trăm thông số kỹ thuật nên cực kỳ nhanh. Vấn đề duy nhất bạn có thể gặp phải mà tôi biết là nếu bạn thay đổi các phiên bản của rspec và phiên bản mới không tương thích ngược với một số chức năng bạn đã sử dụng trong bài kiểm tra của mình, bạn có thể phải viết lại một số bài kiểm tra.
Điều này thật tuyệt nếu bạn đang thực hiện thông số kỹ thuật một lần hoặc có một số lý do chính đáng để KHÔNG bao gồm rspec trong gempec của bạn, tuy nhiên điều đó không tốt cho việc chia sẻ hoặc thực thi khả năng tương thích.