我正在尝试学习如何使用 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)
。是否创建将项目保存到测试数据库并且构建没有?或者我在这里感到困惑。我什么时候应该使用哪个?
谢谢。