看起来很简单。试图编写一个具有默认参数的简单代码。这会引发名称错误和方法错误的错误。代码应该能够接受任何参数并打印arg,如果不是arg给出print“meat”。 有什么帮助,为什么它的抛出错误?
def meal_choice( meal = "meat")
puts "#{meal}"
end
Failures:
1)#meal_choice应该默认为肉 失败/错误:期待(meal_choice).to eq(“meat”)
NameError:
undefined local variable or method `meal_choice' for #<RSpec::ExampleGroups::MealChoice:0x007fb4ec159188>
# ./spec/meal_choice_spec.rb:3:in `block (2 levels) in <top (required)>'
2)#meal_choice应该允许你订餐 失败/错误:期待(meal_choice(“素食主义者”))。到eq(“素食主义者”)
NoMethodError:
undefined method `meal_choice' for #<RSpec::ExampleGroups::MealChoice:0x007fb4ec14b0d8>
# ./spec/meal_choice_spec.rb:7:in `block (2 levels) in <top (required)>'
以0.00125秒结束(文件加载0.12294秒) 2个例子,2个失败
失败的例子:
rspec ./spec/meal_choice_spec.rb:2##meal_choice应该默认为肉 rspec ./spec/meal_choice_spec.rb:6##meal_choice应该允许你订餐
答案 0 :(得分:2)
这是一个有效的代码:
[1] pry(main)> def meal_choice( meal = "meat")
[1] pry(main)* puts "#{meal}"
[1] pry(main)* end
#=> :meal_choice
[2] pry(main)> meal_choice
#=> meat
#=> nil
[3] pry(main)> meal_choice(:sdgsdg)
#=> sdgsdg
#=> nil
您必须在方法调用中输入错误或错误地调用方法。
答案 1 :(得分:1)
您需要使该方法在没有放置的情况下起作用:
def meal_choice (meal = "meat")
meal
end