我有一个课程如下:
class User
alias_method :nickname, :username
def username
self.name.split(' ').first.downcase
end
end
我想测试方法:nickname
是:username
的别名。
以下两项都不起作用:
user = User.new
User.instance_method(:nick_name) == User.instance_method(:username)
user.method(:nick_name) == user.method(:username)
类似的讨论发生在How to test method alias ruby,但那里所说的答案没有用。
答案 0 :(得分:1)
您分享了有关class
方法的讨论链接的答案,这里有实例方法。是的,正如@HoMan在评论中正确指出的那样,以下应该有效..
class User
def username
self.name.split(' ').first.downcase
end
alias nickname, username
end
在你的测试用例中,
user = User.last
user.nick_name == user.username