第一次测试通过,但其他两次没有。我的语法错在哪里?唯一的区别是match
与eq
。我知道我之前使用过match
,但我似乎无法在网上找到好的文档。
我得到的错误是:undefined method 'match' for 1:Fixnum
describe Die do
describe "new roll" do #TEST PASSES
it "returns a number" do
expect(Die.instance_method(:initialize).arity).to eq 1
end
end
describe "new roll" do # error undefined method 'match' for 1:Fixnum
it "returns a number" do
expect(Die.instance_method(:initialize).arity).to match 1
end
end
describe "new roll" do # error expected /\d/ got 1
it "returns a number" do
expect(Die.instance_method(:initialize).arity).to eq (/\d/)
end
end
end
答案 0 :(得分:2)
你的第二个测试没有通过,因为match
可以将字符串或正则表达式与字符串进行比较,而不是Fixnums。您的第三个测试未通过,因为正则表达式/\d/
与1
的相等,匹配字符串"1"
describe Die do
describe "new roll" do #TEST PASSES
it "returns a number" do
expect(Die.instance_method(:initialize).arity).to eq(1)
end
end
describe "new roll" do
it "returns a number" do
# 1.to_s equals the String "1" ...
expect(Die.instance_method(:initialize).arity.to_s).to eq("1")
end
end
describe "new roll" do
it "returns a number" do
# ... and "1" matches the regex /\d/
expect(Die.instance_method(:initialize).arity.to_s).to match(/\d/)
end
end
end