【问题标题】:What does "assigns" do in Ruby on Rails?Ruby on Rails 中的“assigns”有什么作用?
【发布时间】:2011-12-23 13:12:43
【问题描述】:

我目前正在尝试学习 Ruby on Rails 和测试框架 RSpec。 assigns 在这个 RSpec 测试中做了什么?

 describe "GET index" do
    it "assigns all mymodel as @mymodel" do
      mymodel = Factory(:mymodel)
      get :index
      assigns(:mymodels).should eq([mymodel])
    end
  end

【问题讨论】:

    标签: ruby-on-rails ruby testing rspec


    【解决方案1】:

    assigns 只是检查您在控制器中设置的实例变量的值。

    这里检查@mymodels

    【讨论】:

    • 是的。因此您可以忽略它,因为您不应该编写控制器规范。将 Cucumber 用于您的控制器,RSpec 仅用于您的模型。
    • @MarnenLaibow-Koser:黄瓜是为集成规范而设计的。测试控制器是功能测试。两者都是必要的,目的不同。
    • 在 99% 的情况下完全不需要控制器的功能测试。它测试错误的东西——也就是说,它测试的是实现,而不是行为——因此是在浪费时间和精力;更糟糕的是,它可能会误导您认为您的应用程序经过了良好的测试,而实际上并非如此。一般来说,不应该这样做。
    猜你喜欢
    • 1970-01-01
    • 2010-09-14
    • 2010-11-17
    • 1970-01-01
    • 2011-12-13
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多