Print Function Tests
This is an example of how you can test the output stream of a student defined function.
Ruby makes this super easy with the output matcher.
expect { print 'foo' }.to output('foo').to_stdout
This test makes sure the student's function named prints_name() that takes a name as a parameter and prints "Hello, {name provided}!" to standard output. It assumes the student's file name is example.rb. Replace the require with whatever your student's file name is.

require 'rspec'
require 'stringio'
require '/usercode/example'
​
RSpec.describe "CodingRoomsUnitTests" do
​
describe "Run prints_name() with 'Jane'" do
it "expects output to be 'Hello, Jane!'" do
expect{prints_name("Jane")}.to output("Hello, Jane!\n").to_stdout
end
end
​
describe "Run prints_name() with 'Fred'" do
it "expects output to be 'Hello, Fred!'" do
expect{prints_name("Fred")}.to output("Hello, Fred!\n").to_stdout
end
end
​
end
​

example.rb
def prints_name(name)
puts 'Hello, ' + name + "!"
end
​
prints_name("Jane")
Export as PDF
Copy link
On this page