首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >decent_exposure gem的Rspec测试失败

decent_exposure gem的Rspec测试失败
EN

Stack Overflow用户
提问于 2012-07-17 20:36:00
回答 1查看 491关注 0票数 1

我在Rails应用程序中使用RSpec和decent_exposure gem时遇到了问题。

我的控制器测试失败了,因为decent_exposure调用了两次方法"new“(Model.new(paramsname)。一次使用name (Brand.new(params“Brand.new”)返回Brand.new(nil)),第二次使用我期望的(Brand.new(params"brand"))。我需要在我的测试文件中跳过第一个调用。Brand.should_receive(:new).with(...).once.and_return(band)不工作。

我的测试文件:

代码语言:javascript
复制
let(:brand) {
  mock_model(Brand).as_null_object
}

before do
  Brand.stub(:new).and_return(brand)
end

describe "with valid parameters" do
  it "should create a new brand" do
    Brand.should_receive(:new).with(
      "name" => "LG",
    ).and_return(brand)

    post :create, :brand => {
      "name" => "LG",
    }
  end
end

所以,你能帮我弄清楚怎么才能通过吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-18 05:12:15

试试这个:

代码语言:javascript
复制
Brand.should_receive(:new).once.with(any_args())
Brand.should_receive(:new).once.with("name" => "LG").and_return(brand)

我建议添加对控制器用于持久化brand的任何方法的期望。通常这是save

代码语言:javascript
复制
brand.should_receive(:save) { true }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11522567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档