Rspec has_link带有重音词

时间:2012-02-18 14:53:09

标签: ruby-on-rails-3 rspec tdd rspec2

有人经历过这种考试吗?

这样做:

# this works
it { should have_link("Next") } 

但同样的测试使用包含“Próximo”等重音的单词(意思是葡萄牙语的下一个)

# it fails
it { should have_link("Próximo")  }

错误:

1) UserPages index pagination 
     Failure/Error: it { should have_link("Próximo") }
       expected link "Próximo" to return something
     # ./spec/requests/user_pages_spec.rb:29:in `block (4 levels) in <top (required)>'

Finished in 2.8 seconds
28 examples, 1 failure

user_pages_spec.rb (仅限相关代码)

describe "pagination" do
  before(:all) { 30.times { FactoryGirl.create(:user) } }
  after(:all) { User.delete_all }

  it { should_not have_link('delete') }
  it { should have_link("Próximo") }
  it { should have_link('2') }
end

我该怎么做这个测试?

3 个答案:

答案 0 :(得分:3)

一种方法是:

# encoding: utf-8

位于spec文件的顶部,因此Ruby知道该文件包含非ASCII字符。

更多信息:http://nuclearsquid.com/writings/ruby-1-9-encodings/

答案 1 :(得分:2)

您的来源是否指定脚本中包含Unicode?

# encoding: UTF-8 

这是一篇非常好的写作:http://yehudakatz.com/2010/05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails/

答案 2 :(得分:1)

固定。

有一会儿我忘记了我在Spork下运行,而我所要做的就是重新启动网络服务器并重新启动Spork。

提示:如果您正在运行Nginx,请转到控制台并在项目文件夹下键入touch tmp/restart.txt。它将重新启动Nginx。