与upcase相关的Rspec测试

时间:2015-08-28 18:46:56

标签: ruby-on-rails ruby rspec

我还是铁杆新手,对我与RSpec测试相关的作业有疑问。

首先,这是分配参数:

  1. 保存用户之前运行。
  2. 拆分用户'空格上的名称(例如,在名字和姓氏之间)。遍历每个名​​称并将第一个字母大写。将名字和姓氏重新组合在一起,并将其保存到name属性。
  3. 您的解决方案不必检查格式正确的现有名称。例如,"史蒂夫乔布斯"格式正确,但无论如何你的解决方案都应该正常工作。
  4. 使用TDD编写解决方案。
  5. 以下是我在app / models / user.rb文件中提出的内容:

    before_save { @name.map{|v| v.split.map{|x| x[0].upcase + name[1..-1]}.join(' ')}}

    这适用于我需要它做的事情。我知道我倒退了,但我不太清楚如何为此编写RSpec测试。

    这是我在spec / user_spec.rb中的尝试:

    describe "capitalize user name" do it "should capitalize first and last names" do expect(name).to_be capitalize end end

    显然这不起作用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

根据您的分配参数,您的测试需要创建用户,保存它,然后进行测试以确保名称已正确格式化。类似的东西:

it "should capitalize first and last names" do
  user = User.new(name: "jon malis")
  user.save!
  expect(user.name).to_eq "Jon Malis"
end

其他一些需要考虑的事情......比如" Harry S. Truman"和麦当娜"麦当娜"和莱昂纳多迪卡普里奥"。最后,请阅读Ruby的capitalize方法。