Rspec测试属于并且有许多

jas*_*328 5 ruby rspec ruby-on-rails associations ruby-on-rails-3

我运行一个测试的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
Run Code Online (Sandbox Code Playgroud)

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

Post的模型文件

has_many :links
Run Code Online (Sandbox Code Playgroud)

链接的模型文件

belongs_to :post
Run Code Online (Sandbox Code Playgroud)

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

luc*_*usa 15

你需要保存两个模型来验证这种关系,你也可以使用shoulda gem.

代码如下:

describe Link do
  it { should belong_to(:post) }
end
Run Code Online (Sandbox Code Playgroud)
describe Post do
  it { should have_many(:links) }
end
Run Code Online (Sandbox Code Playgroud)

  • 几年后,我来这里只是想提一下,如果你想测试它,你正在测试 Rails 框架。这是一个无用的测试。我不再这样做了;) (2认同)