Я хочу иметь возможность иметь TestUser
модель специально для разработки и тестирования, которая будет действовать точно так же, как моя обычная модель пользователя, за исключением того, что она всегда аутентифицируется.
Ключевая проблема здесь заключается в том, чтобы TestUser
всегда вызывал методы класса для User и просматривал его переменные экземпляра уровня класса, как если бы он был обычным пользователем, а не делал это через cattr_accessor
i.e.:
class User
class << self
attr_accessor :foo
end
end
class TestUser ?< ??
??
end
---
User.foo = 'bar'
TestUser.foo => 'bar'
User.new.authenticate?('password') => maybe, runs authentication
TestUser.new.authenticate?(_) => true
Я знаю, что могу делать то, что хочу, просто расширяя User в тестировании и разработке, чтобы он всегда проходил проверку подлинности, но мне было интересно, можно ли будет сделать это с этим дополнительным классом.