【发布时间】:2012-08-12 15:57:05
【问题描述】:
我正在尝试学习如何使用 Rspec 进行测试。
目前我有一个 Item 类的规范:
require 'spec_helper'
describe Item do
it { should belong_to :list }
before(:each) do
@item = FactoryGirl.create(:item)
end
subject { @item }
it { should respond_to :name }
it { should validate_presence_of :name }
end
不过,我对此有几个问题。
it { should validate_presence_of :name }和写的一样吗:
describe "when name is not present" do
before { @item.name = "" }
it { should_not be_valid }
end
或者两者之间有关键区别吗?
我还想知道it { should belong_to :list } 是否值得写在规范中,或者是否有更好的方法。
我也知道我可以做到@item = FactoryGirl.build(:item) 或FactoryGirl.create(:item)。是否创建将项目保存到测试数据库并且构建没有?或者我在这里感到困惑。我什么时候应该使用哪个?
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rspec tdd factory-bot