每次运行测试时,它们都会在干净的数据库上运行。就像其他人说的,你应该测试你的应用程序的逻辑!您可以使用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 类创建一个工厂并将关联(用户)添加到工厂:
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的更多信息
此外,关于清理数据库,您可以查看Database Cleaner gem。它易于配置并且有效!
希望有帮助!