在某些情况下,我的很多代码都具有相同的文本行(我们正在使用 Calabash 进行 iOS 自动化,如果这能让您有想法的话)。
例如:“所有标签标记为:'#{name}'”在特定类中使用了 8 次。
我希望能够有一个使用该文本的常量,但是如果我将它放在类的顶部,当然还没有设置变量“name”。如果没有定义一个接受参数并返回一个字符串的方法,有没有办法做一些本质上像这样的事情,它可以存在于类的顶部,但在使用之前不会被评估?:
class ClassName
extend Calabash::Cucumber::Operations
@NAME_CONSTANT = "all label marked:'#{name}'"
def self.method_name(name)
query("#{@NAME_CONSTANT} sibling label marked:'anotherLabel' isHidden:0")
end
end
Run Code Online (Sandbox Code Playgroud)
如果你使用我提到的语法,你会得到这个错误:未定义的局部变量或 ClassName 的方法`name'
您可以稍后使用String#%插入字符串。
class ClassName
@NAME_CONSTANT = "all label marked:'%{name}'"
def self.method_name(insert_name)
query("#{@NAME_CONSTANT} sibling label marked:'anotherLabel' isHidden:0" % {name: insert_name})
end
def self.query(string)
puts string
end
end
ClassName.method_name('test')
#=> "all label marked:'test' sibling label marked:'anotherLabel' isHidden:0"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2207 次 |
| 最近记录: |