【问题标题】:Tips about organizing fixtures in Rails?在 Rails 中组织固定装置的技巧?
【发布时间】:2014-08-24 15:08:49
【问题描述】:

我的测试失败最多的时候是在控制器中,因为我不知道如何正确地组织夹具中的模型以使其易于维护。很多时候我不得不重新组织夹具并重写控制器测试。

有没有人有一些提示可以帮助我解决这个问题?

(有些人认为我们不应该为控制器编写测试,但我认为这不是一个好主意)

【问题讨论】:

    标签: ruby-on-rails unit-testing controller tdd fixtures


    【解决方案1】:

    您绝对应该测试您的控制器。就个人而言,我的控制器非常纤薄,因此测试本身非常简单。

    你的控制器测试不应该关心模型逻辑或内容,如果他们关心,你测试的是错误的东西。

    使用 rspec 您可以测试以下内容:

    Model.any_instance.should_receive(:foo)
    

    显然你需要模型在那里所以Model.find(id) 返回一些东西,但是你可以在不需要模型的情况下做到这一点。模拟数据库交互是一种选择,使用固定装置是另一种选择。

    个人偏好是使用FactoryGirl。它使用简单且不碍事,因此您可以在控制器测试中执行以下操作:

    user = FactoryGirl.create(:user, username: "foo", name: "bar")
    get :search, username: "foo"
    assigns(:user).should == user
    

    只要控制器返回正确的东西,模型中的内容或方式无关紧要。

    【讨论】:

      猜你喜欢
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多