Tôi muốn làm là chạy ruby sayhello.rb
trên dòng lệnh, sau đó nhận Hello from Rspec
.Cách kiểm tra đặt trong rspec
Tôi đã có mà với điều này:
class Hello
def speak
puts 'Hello from RSpec'
end
end
hi = Hello.new #brings my object into existence
hi.speak
Bây giờ tôi muốn viết một bài kiểm tra trong rspec để kiểm tra xem các đầu ra dòng lệnh là trong thực tế "Hello từ RSpec" và không phải là "Tôi thích Unix "
KHÔNG LÀM VIỆC. Tôi hiện có điều này trong tệp sayhello_spec.rb của mình
require_relative 'sayhello.rb' #points to file so I can 'see' it
describe "sayhello.rb" do
it "should say 'Hello from Rspec' when ran" do
STDOUT.should_receive(:puts).with('Hello from RSpec')
end
end
Ngoài ra, tôi cần thực sự xem thử nghiệm sẽ trông như thế nào trong RSPEC của tôi.
Làm cách nào để biết về mã trong 'sayhello.rb'? – bswinnerton
RSpec không cần biết (ví dụ: truy cập) mã trong 'sayhello.rb'. Spec chỉ đơn giản là đặt một kỳ vọng vào 'STDOUT.puts' được xây dựng trong Ruby. Kỳ vọng được đáp ứng sau khi 'sayhello.rb' được tải và chạy (tức là' require'd). –
Đây là cùng một kỳ vọng với cú pháp RSpec mới: 'mong đợi (STDOUT) .để nhận (: đặt) .với (" Xin chào từ RSpec ")' – Jankeesvw