before { @user = User.new(name: "Example User", email: "[email protected]") }
#在各測試用例之前執行塊中的代碼,本例中這個塊的作用是爲
# User.new 傳入一個合法的初始 Hash 參數,創建 @user 實例變量
subject { @user } #把 @user 設爲這些測試用例默認的測試對象
it { should respond_to(:name) }
it { should respond_to(:email) }
#兩個測試用例對 name 和 email 屬性的存在性進行了測試
@user.respond_to?(:name)
在 RSpec 中可以寫成
it "should respond to 'name'" do
expect(@user).to respond_to(:name)
end
驗證值不能爲空:presence
app/models/user.rb中
class User < ActiveRecord::Base
validates :name, presence: true
end
在測試文件中
it {should be_valid}
describe "when name is not present" do
before{@user.name=""}
it{should_not be_valid}
驗證字符串長度length
validates :name, presence: true,length{maximum:12}