【问题标题】:Can I mock the class name of an RSpec double?我可以模拟 RSpec double 的类名吗?
【发布时间】:2017-01-13 17:21:48
【问题描述】:

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

if some_object.class == ClassName

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

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

我环顾四周,但不知道如何模拟实际双精度的类名。有任何想法吗?

【问题讨论】:

    标签: ruby unit-testing rspec


    【解决方案1】:

    您可以存根class 调用:

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

    【讨论】:

    • 谢谢你,我以为我已经尝试过这个解决方案,但我的语法一定有点不对劲,但你的方法很有效。
    猜你喜欢
    • 2018-12-27
    • 1970-01-01
    • 2010-10-11
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    • 2012-12-05
    相关资源
    最近更新 更多