Nea*_*alR 3 ruby arrays ruby-on-rails ruby-on-rails-3
下面是我为一小段 Ruby 代码编写的单元测试。
subject { AutoShop.new 'Mr. Fix It', 'WA987654321', Employee.new('Sue', 'Owner', 0) }
it '#employee_list returns list of employee names' do
# setup
input = [Employee.new('Lou', 'Receptionist', 90_000)]
subject.append_employees input
subject.employee_list.should eq "Sue\nLou"
end
Run Code Online (Sandbox Code Playgroud)
这是该类的代码。但是,我无法让名称在该employee_list方法中正确显示。我是 Ruby 的新手,所以任何建议将不胜感激。
class AutoShop < Business
attr_accessor :employees
def initialize(name, tax_id, employee)
super(name, tax_id)
@employees = []
@employees << employee
end
def append_employees(input)
input.map { |x| @employees << x }
end
def employee_list
@employees.map {|x| x.name}
end
end
Run Code Online (Sandbox Code Playgroud)
您的employee_list方法基于您的单元测试,应该输出由换行符分隔的每个名称\n。因此,添加 a.join("\n")以从数组中生成一个字符串。
def employee_list
@employees.map {|x| x.name }.join("\n")
end
Run Code Online (Sandbox Code Playgroud)
也.map可以使用“pretzel-colon”简写来完成:
@employees.map(&:name).join("\n")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1988 次 |
| 最近记录: |