[英]RSpec. How to test method with nested private method (mocking/stubbing)?
同志们,如何用嵌套的私有方法“ self.merge_op”测试方法“ self.default”? 我m noob in RSpec. What is more suitable for such case: mocking/stubbing? Functionality of file - it
m noob in RSpec. What is more suitable for such case: mocking/stubbing? Functionality of file - it
m noob in RSpec. What is more suitable for such case: mocking/stubbing? Functionality of file - it
是某种MailClient
class MailClient
def self.default
options = self.merge_op
@clients[options] = MailClient.send :new unless @clients.has_key?(options)
@clients[options]
end
def self.merge_op(opts={:smtp => {}, :pop3 => {}})
def_smtp_opts = {:address => settings.mail_smtp_server,
:port => settings.mail_smtp_port,
:domain => settings.mail_smtp_domain,
:user_name => settings.mail_smtp_user_name,
:password => settings.mail_smtp_user_pass,
:authentication => 'plain',
:enable_starttls_auto => true}
end
我只是测试default
方法,而不考虑它使用私有方法来完成工作的事实。 找出给定输入的预期输出是什么。
我说这的主要原因是,它使您的测试更强大。 您可以更改default
方法的内部工作方式,甚至可以取消私有方法,而无需更改测试。
我想考虑的唯一事情就是私有merge_op
方法中的settings
对象。 该对象实际上是default
方法的输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.