为什么由于两个反斜杠而出现错误\\?

时间:2013-06-11 20:14:31

标签: ruby-on-rails ruby ruby-on-rails-3.2 rubygems ruby-test

我正在编写测试并验证一些数据。由于我在预期的数据字符串中有两个\\,它失败了。

我的测试代码是:

actual_string.should eq 'Today is Tuesday.\n It is third day of the week.'

当我执行此代码时,我收到一条错误消息,指出实际数据与预期数据不匹配。

实际数据是:

'Today is Tuesday.\n It is third day of the week.'

预期数据为:

'Today is Tuesday.\\n It is third day of the week.'

不确定在预期的数据中来自哪里的额外斜杠'\'。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用“文字” - 双引号......

答案 1 :(得分:0)

与其他语言(例如Python,JavaScript等)不同,Ruby在单引号和双引号字符串中使用不同的转义序列。

单引号字符串仅支持\'\\。其他一切都按字面意思对待。因此,'\n'是两个字符\n,而不是一个新的字符。

要使用换行符,请将字符串括在双引号中:

actual_string.should eq "Today is Tuesday.\n It is third day of the week."

这将解决您的测试问题。