我试图理解为什么这两件事会带来不同的价值。
值是string,字段是text_field。
def populate_text(field, value)
self.send "user_name=", value
end
# => nil
def populate_text(value)
self.user_name = value
end
# => "value"为什么self和send有不同的返回值?
这个类包括PageObject (如果有帮助的话)。
发布于 2014-10-20 18:28:26
Ruby用于调用名称以=结尾的方法的语法糖总是返回右值,而不管方法的返回值如何。
当您使用send调用该方法时,情况并非如此。例如:
class Foo
def bar=(n)
:ohno
end
end
f = Foo.new
x = (f.bar = 42)
y = f.send("bar=", 42)
p [x,y]
#=> [42, :ohno]因此,如果user_name=方法的返回值不是该方法的参数,那么您将得到两个不同的值。
发布于 2015-05-29 14:15:56
Self.Send允许您动态地选择对象,而不管类型如何。这使您可以使用非常简单的代码来驱动测试。
https://stackoverflow.com/questions/26472075
复制相似问题