代码之家  ›  专栏  ›  技术社区  ›  Adnan Ali

存根中any_number_of_times方法的替代方法

  •  10
  • Adnan Ali  · 技术社区  · 11 年前

    我已经将我的项目升级到rails 4,但现在我收到了一些弃用警告,其中之一是 弃用:any_number_of_times已弃用。 。我收到此警告的代码是

    sponsorship = RSpec::Mocks::Mock.new(:sponsorship)
    
    SPONSORSHIP.should_receive(:[]).with('sponsorship').any_number_of_times.and_return(sponsorship)
    

    另一种情况是

    sponsorship.should_receive(:[]).with(key).any_number_of_times.and_return(value)
    

    我在上面的代码中使用了存根,但它没有正确地进行存根。你能找到我哪里做错了吗。我用过的粗粗

    SPONSORSHIP.stub(:[]).with('sponsorship').and_return(sponsorship)
    
    2 回复  |  直到 9 年前
        1
  •  15
  •   Peter Alfvin    11 年前

    方法 any_number_of_times 不推荐使用(并且在RSpec 3中不再使用),因为它并没有真正测试任何东西。它永远不会失败,因为它也可以被调用0次。请参阅中的扩展参数 https://trello.com/c/p2OsobvA/78-update-website-menu-architecture-to-accommodate-pledging-as-well-as-weddings-memorials-etc .

    如果您希望它至少被调用一次,则可以使用 at_least(1).times .

        2
  •  2
  •   Adnan Ali    11 年前

    自从 any_number_of_times 对其他替代方法没有任何帮助,比如 at_least(n) at_most(n) 帮助删除了这些弃用警告。