ruby - 我可以模拟 RSpec double 的类名吗?

标签 ruby unit-testing rspec

我有一个 RSpec 测试文件,其中创建了一个允许方法并返回值的 double 值。在我的 Ruby 应用程序代码中,我使用了代码

if some_object.class == ClassName

过滤掉其他类不需要的实例。

该代码可以工作并给出正确的结果,但不会通过 RSpec 测试,因为 double 在测试期间被过滤掉,因为它的类名是 RSpec::Mocks::Double。

我环顾四周,但无法找到如何模拟实际 double 型的类名。有任何想法吗?

最佳答案

您可以 stub class调用:

expect(some_object).to receive(:class).and_return(ClassName)

关于ruby - 我可以模拟 RSpec double 的类名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41630900/

相关文章:

ruby - Ruby 实例的唯一性

ruby-on-rails - 运行 rake db :setup removes all my users data

javascript - 我如何 Jest 模拟 Date.toLocaleDateString?

ruby-on-rails - Capybara 的 stub 浏览器时间和时区

通过tomcat部署war时Ruby版本不匹配

Ruby Regex 非贪婪匹配 : looking for the closest occurrence of a phrase left to a searched word

java - 在 Java 中测试 try-catch block

unit-testing - 单元测试适合 BPM 开发吗?

ruby-on-rails - 使用 Rspec 的 Rails 5 邮件程序预览

rspec - 如何配置 Aptana 3 IDE 来为我的 Rails 项目运行 rspec 测试?