有没有办法制作不尝试评估内部 #{} 的多行字符串?
我想要以下内容:
doc <<-DOC
describe "should get sysdate on test: #{test_name}" do
it "should get SYSDATE" do
conx_bd.sysdate.should_not == NULL
end
end
DOC
用这个内容创建一个字符串(doc):(用于元编程)
describe "should get sysdate on test: #{test_name}" do
it "should get SYSDATE" do
conx_bd.sysdate.should_not == NULL
end
end
我收到此错误:
NameError: undefined local variable or method `test_name' for main:Object
如果用单引号括住heredoc标识符,如果字符串具有例如要求,我会收到此错误
doc <<'-DOC'
require "spec_helper.rb" # conexión oracle
describe "should get sysdate on test: #{test_name}" do
it "should get SYSDATE" do
conx_bd.sysdate.should_not == NULL
end
end
文档
错误:
LoadError: no such file to load -- spec_helper
tks
编辑:感谢您的支持,我从答案中得到了 2 个可能的解决方案。
首先,我在定义多行字符串时出错
doc <<-DOC should be <<-doc
scape # 与 \
<<-doc
描述“应该在测试中获取 sysdate:#{test_name}”做它“应该得到 SYSDATE”做 conx_bd.sysdate.should_not == NULL end end
doc用单引号将heredoc 标识符括起来
<<-'doc'
描述“应该在测试中获取 sysdate:#{test_name}”做它“应该得到 SYSDATE”做 conx_bd.sysdate.should_not == NULL end end
doc