在这种情况下,expect似乎是在视图上顽固地使用该方法。事实上,用expect代替allow似乎有着完全相同的效果。我认为,通常情况下,当与服务器一起运行时,视图将调用job_posts,消息将落在控制器上的助手方法上,这是预期的行为。关于expect的意外“存根”副作用,我在中找到了这个
person = double(" person ") expect(Person).to接收(:f
我正在为这个服务写一个测试。 sort_offers(product).each do |product_code| offer.update(poduct_params) end它正在调用一个服务,在某些情况下,该服务将覆盖运行offer.update(product_prams)时保存的值。如何在测试中跳过服务调用? context 'is valid' do
我对特定的类方法有一个存根,这个存根对我的大多数测试都是有效的。我将模拟设置在一个前置块中,以便干燥我的测试。我想删除一个测试的存根,如果它是无效的。如何使用RSpec完成此操作?代码 expect_any_instance_of(Foo).to receive(:callback)
it 'does a callback on this
我最近学习了如何在rspec中使用存根,并发现它的一些好处是我们可以解耦代码(例如。控制器和模型),更有效的测试执行(例如,存根数据库调用)。然而,我认为,如果我们使用存根,代码可以紧密地绑定到特定的实现,因此牺牲了我们以后重构代码的方式。UsersController, :type => :controller do it 'saves new user' do