У меня есть класс сообщений, который можно инициализировать, передав аргументы в конструктор или не передавая аргументов, а затем устанавливая атрибуты с помощью методов доступа. В методах установки атрибутов происходит некоторая предварительная обработка.
У меня есть тесты, которые гарантируют, что методы установки выполняют то, что они должны делать, но я могу ' Кажется, я нашел хороший способ проверить, действительно ли метод initialize вызывает сеттеры.
class Message
attr_accessor :body
attr_accessor :recipients
attr_accessor :options
def initialize(message=nil, recipients=nil, options=nil)
self.body = message if message
self.recipients = recipients if recipients
self.options = options if options
end
def body=(body)
@body = body.strip_html
end
def recipients=(recipients)
@recipients = []
[*recipients].each do |recipient|
self.add_recipient(recipient)
end
end
end