每次运行测试时,它们都运行在一个干净的数据库上。像其他人一样,你应该测试你的应用程序的逻辑! 您可以使用FactoryGirl为您的测试添加持久性。您可以定义自己的工厂,并在测试中创建对象。
例如,定义一个工厂很容易:
FactoryGirl.define do
factory :user do
first_name "John"
last_name "Doe"
admin false
end
end
之后,在您的测试,你可以调用这个厂:
# Returns a User instance that's not saved in database
user = FactoryGirl.build(:user)
# Returns a saved (in database) User instance
user = FactoryGirl.create(:user)
此外,您可以为用户提供自己的价值观属性:
jane_doe = FactoryGirl.create(:user, first_name: "Jane", last_name: "Doe")
在你的情况下,如果你想为Account类和广告创建一个工厂d协会(用户)工厂:
FactoryGirl.define do
factory :user do
first_name "John"
last_name "Doe"
admin false
end
factory :account do
acc_number 123456789
full_name "John Doe"
association :user, factory: :user
end
end
你可以阅读更多关于FactoryGirl here
此外,关于清理你的数据库,你可以检查出Database Cleaner gem。这很容易配置,它的工作原理!
希望有帮助!
嘿它是不是很清楚?...我没有得到它 –
你能提供一些你想测试的代码示例吗? – MarkoHiel