Here is a ruby User
class with #first_name
, #last_name
, and #full_name
methods, as well as a constructor.
#/lib/user.rb
class User
attr_reader :first_name, :last_name
def initialize(first_name:, last_name:)
@first_name = first_name
@last_name = last_name
end
def full_name
"#{first_name} #{last_name}"
end
end
#/spec/user_spec.rb
require 'rspec'
require "user"
RSpec.describe User do
describe "#first_name" do
it "returns the user's first name" do
user = User.new(first_name: "Jane", last_name: "Doe")
expect(user.first_name).to eq "Jane"
end
end
describe "#last_name" do
it "returns the user's last name" do
user = User.new(first_name: "Jane", last_name: "Doe")
expect(user.last_name).to eq "Doe"
end
end
describe "#full_name" do
it "returns the user's full name" do
user = User.new(first_name: "Jane", last_name: "Doe")
expect(user.full_name).to eq "Jane Doe"
end
end
end
#/spec/user_spec.rb
require 'rspec'
require "user"
RSpec.describe User do
def create_jane_doe_user
User.new(first_name: "Jane", last_name: "Doe")
end
describe "#first_name" do
it "returns the user's first name" do
user = create_jane_doe_user
expect(user.first_name).to eq "Jane"
end
end
describe "#last_name" do
it "returns the user's last name" do
user = create_jane_doe_user
expect(user.last_name).to eq "Doe"
end
end
describe "#full_name" do
it "returns the user's full name" do
user = create_jane_doe_user
expect(user.full_name).to eq "Jane Doe"
end
end
end