0
Допустим, у меня есть метод, который ссылается на переменную экземпляра непосредственно:заглушки переменной экземпляра с помощью мокко
class MyClass
def method1
puts @instance_var
end
end
Как я могу погасить окурок значение @instance_var
с помощью mocha
в тесте Test::Unit
?
Уход за разработкой? http://stackoverflow.com/questions/9981614/is-it-bad-form-to-use-instance-vars-directly-in-ruby – m33lky
OO - отправка сообщения. Доступ к ivar не является отправкой сообщения, поэтому он не является OO. Ruby - объектно-ориентированный язык, поэтому имеет смысл стремиться к объектно-ориентированному дизайну, не имея доступа к ivars. Или, чтобы перейти к другому определению OO: что отличает ООП от ADT-ориентированного программирования, является независимость представления и, в частности, способность поддерживать множественные представления. Доступ к ivars нарушает как независимость представления, так и множественные представления. В дополнение к этому, он также нарушает наследование, поскольку вы не можете переопределить ivars, только методы. –
Я думаю, вы говорите об оригинальном ООП. Современное определение ООП ушло от этого. Не уверен, что вы подразумеваете, не имея возможности переопределить иваров. Ruby - динамически типизированный язык, не может ли дочерний объект помещать что-либо в ivar? У меня есть конкретный случай. Я не хочу, чтобы внешний мир мог получить доступ к этому конкретному ивару. – m33lky