ruby-on-rails - Rspec 测试属于并且有很多

标签 ruby-on-rails ruby ruby-on-rails-3 rspec associations

我正在运行 rspec 测试以确保两个模型通过 has_manybelongs_to 相互关联。下面是我的测试。

describe "testing for has many links" do
  before do
    @post = Post.new(day: "Day 1", content: "Test")
    @link = Link.new(post_id: @post.id, title: "google", url: "google.com")
  end

  it "in the post model" do
    @post.links.first.url.should == "google.com"
  end
end

测试告诉我 url 是一个未定义的方法。我的测试有什么问题?或者我只是错过了一些基本的东西。

Post 的模型文件

has_many :links

Link 的模型文件

belongs_to :post

最重要的是,链接模型具有属性 post_id

最佳答案

您需要保存两个模型来验证这种关系,此外,您可以使用 shoulda gem 。

代码如下:

describe Link do
  it { should belong_to(:post) }
end

describe Post do
  it { should have_many(:links) }
end

关于ruby-on-rails - Rspec 测试属于并且有很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390092/

相关文章:

ruby-on-rails - 如何让 Rspec 运行嵌套在文件夹下的所有测试?

ruby - 在 Ruby 中将哈希值转换为另一个哈希值

ruby - Codecademy "converting between symbols and strings" ruby 类(class)

ruby-on-rails - 帮助在 Rails 中构建模型

ruby-on-rails - Rails和Rspec-表单提交失败时检查是否存在错误

ruby-on-rails - 事务中的 HTTP 请求?

ruby-on-rails - Rails 开发环境中无法加载图像

ruby-on-rails - 我需要在 rails 路线前加斜杠吗

ruby-on-rails-3 - 简单表单上的只读复选框仍然可以更新

ruby - 如何在 Ruby on rails 中访问 Controller 中的 hidden_​​field