【问题标题】:Mocking an external call to TwitterAPI Client in rails with Rspec.使用 Rspec 在 Rails 中模拟对 TwitterAPI 客户端的外部调用。
【发布时间】:2015-10-02 00:49:20
【问题描述】:

我试图在我的模型方法测试中模拟这个调用:

    client = TwitterAPI.new.client

我不确定如何在测试中执行此操作,因为我已经尝试过

allow_any_instance_of(TwitterAPI::Client).to receive(:search).with(@search, @since_time, @until_time).and_return(unprocessed_tweets(3, @tag_name, @now-1.weeks, @now))

但这给了我一个名称错误,我觉得,不管是不正确的方法。有什么建议么?

【问题讨论】:

    标签: ruby-on-rails rspec mocking stubbing


    【解决方案1】:

    您收到名称错误,因为 TwitterAPI::Client 不存在。您可以做的是当您将:new:client 消息发送到TwitterAPI 时存根响应,后者返回一个响应:search 的双精度。

    话虽如此,当你从它实例化一个对象时,为什么不使用一个返回客户端的 TwitterClient 类呢? TwitterAPI.new.client 看起来很别扭。

    【讨论】:

    • 您能给我一个代码示例来说明您在第二部分中的意思吗? /
    猜你喜欢
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2021-09-26
    相关资源
    最近更新 更多