DJ *_*ano 2 ruby page-object-gem
我试图理解为什么这两个东西会返回不同的值.
值是a string,而field是a text_field.
def populate_text(field, value)
self.send "user_name=", value
end
# => nil
def populate_text(value)
self.user_name = value
end
# => "value"
Run Code Online (Sandbox Code Playgroud)
为什么self和send具有不同的返回值?
如果有帮助,该类包括PageObject.
用于调用名称以=结尾的方法的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]
Run Code Online (Sandbox Code Playgroud)
因此,如果您的user_name=方法的返回值不是方法的参数,您将获得两个不同的值.