Ruby gem Sanitize不会在一台机器上凝结空白

时间:2013-04-03 16:04:09

标签: ruby-on-rails ruby rspec rubygems sanitize

我有以下失败的单元测试;

it "should handle white space" do
  Sanitize.clean('   ').should == ''
end

由于Sanitize.clean (' ')的结果为' '而非'',因此失败。

对其他人的机器进行相同的测试工作正常,这导致我可能安装了不正确的宝石,但我已经检查过并且每个人都在运行相同的gemfile.lock,它运行Sanitize 2.0.3正在运行Nokogiri 1.5.5

Ruby的版本(包括补丁)在1.9.3-p392是相同的,唯一的区别是大多数人在Ubuntu机器上运行测试,我在Mac OS X上运行它们。

使用Sanitize的其他测试可以很好地传递,例如剥离不需要的标签和允许其他标签,只有空白才会崩溃。

这让我觉得这可能与编码或我发送的字符有关,也许在我的系统上,空白字符不像Sanitize可以理解的那样?我不知道如何验证这一点。

对我的下一步应该是什么的任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

Sanitize使用libxml2,您的系统上是否安装了此库?您可以使用brew install libxml2安装它。

答案 1 :(得分:0)

不幸的是,这个问题的答案并不是很有帮助,但当我与其他员工一起审核时,我们认为需要此代码的测试不是有效的测试,所以我们将其删除了。