[英]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.