Tôi muốn làm là chạy ruby sayhello.rb
trên dòng lệnh, sau đó nhận Hello from Rspec
.Đầu ra kiểm tra đến dòng lệnh với 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
Ai đó có thể hướng tôi đi đúng hướng?
Xây dựng về vấn đề này: def expect_stdout (string, & chặn); output = capture_stdout (& block); output.should bao gồm chuỗi; kết thúc –