首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSpec。如何使用嵌套的私有方法(mocking/stubbing)测试方法?

RSpec。如何使用嵌套的私有方法(mocking/stubbing)测试方法?
EN

Stack Overflow用户
提问于 2013-08-26 00:00:05
回答 1查看 212关注 0票数 0

同志们,如何测试嵌套私有方法self.merge_op的self.default方法?Im noob in RSpec. What is more suitable for such case: mocking/stubbing? Functionality of file - its某种类型的MailClient

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2013-08-26 02:56:15

我只会测试default方法,而不考虑它使用私有方法来完成工作这一事实。找出给定输入的预期输出是什么。

我这么说的主要原因是它让你的测试更健壮。您可以更改default方法的内部工作方式,甚至可以删除私有方法,而无需更改测试。

我唯一会考虑模拟的是私有merge_op方法中的settings对象是什么。该对象实际上是default方法的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18430891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档