1
我是新来的RSpec和使用我controllers're inherited_resources控制器,我有这样的模拟/存根设置,如:错误的模型存根测试时使用哪些inherited_resources
describe MarketsController do
def mock_market(stubs={})
@mock_market ||= mock_model(Market, stubs).as_null_object
end
describe "GET index" do
it "assigns all markets as @markets" do
Market.stub(:all){ [mock_market] }
get :index
assigns(:markets).should eql([mock_market])
end
end
end
而且因为没有什么在这个规范失败指定(:市场)。之后,我说:
class MarketsController
def index
@markets = Market.all
end
end
它会通过,所以我想那是因为inherited_resources不调用Market.all让所有的市场实例,从而绕过存根Market.stub(:全部)。我上面添加的方法索引显然是多余的,根本不应该存在,所以问题是,如果没有明确地调用Market.all,我应该怎样在我的规范中完成测试?提前致谢!
是的,这解决了我的问题!我不知道它使用Resource.scoped来获取所有资源,谢谢! –