对不起,.noob问题。
我正在编写一个满足Rspec测试的类。这是初始化类并传递字符串参数的测试。 我的挑战是测试正在传入名称参数,并且输出始终使我的测试失败。
下面的代码。
我的课
module Human
class Person
attr_reader :name
def initialize(name)
@name = name
end
end
end
我的测试
RSpec.describe Person::Name do
subject { described_class.new(name: "Hi my name is peter") }
it "has a name" do
expect(subject.name).to eq("Hi my name is peter")
end
结果
Human::Person has a name
Failure/Error: expect(subject.name).to eq("Hi my name is peter")
expected: "Hi my name is peter"
got: {:name=>"Hi my name is peter"}
(compared using ==)
我的问题是我的班级正在上课,但是我的输出格式不同{:name=>"Hi my name is peter"}
....应该是"Hi my name is peter"
如何让我的班级返回测试所期望的字符串输出?
答案 0 :(得分:0)
测试期望您的new
方法接受带有name
键和值的哈希。该类并非仅用名称进行初始化。
但是在您的类中,您需要使用所有参数(键加值)并将其分配给@name
变量。
通过此测试的最简单方法是在initialize
方法中使用关键字参数。
更改
def initialize(name)
到
def initialize(name:)