我有3个问题:
Rails附带的默认测试库是什么?我实际上无法看到它叫什么...... MiniTest? TestUnit?
如何使用每个TestCase 运行一些代码来设置所有测试。似乎setup do
在每次测试之前运行,但我想设置整个文件。
我的下面示例如何工作(在每次测试之前,它不会清除并重新创建种子数据)
代码:
require 'test_helper'
# negative numbers
# 3+ line item journal entries
class LedgerTest < ActiveSupport::TestCase
setup do
ActiveRecord::Base.subclasses.each(&:delete_all)
AccountType.create!(code: 101, name: 'Cash', category: :asset, normal_balance: :debit)
AccountType.create!(code: 102, name: 'Equipment', category: :asset, normal_balance: :debit)
AccountType.create!(code: 103, name: 'Accumulated Depreciation', category: :asset, normal_balance: :credit, contra: true)
end
test "test 1 here" do
end
test "test 2 here" do
end
end
答案 0 :(得分:2)
我认为你应该把它分成3个帖子,因为它更容易。
ActiveSupport::TestCase
延伸Minitest::Test
据我所知,所有这些方法都是解决方法。这是不鼓励的,默认情况下不通过一个漂亮的API支持。 快速搜索出现了这个:
setup_executed = false
setup do
unless setup_executed
#code goes here
setup_executed = true
end
end
在开发和测试环境中,默认情况下,类是懒惰自动加载的,因为它们是必需的。除非在运行ActiveRecord::Base.subclasses
之前在代码中的某处引用类,否则ruby将不知道它存在,因为它从未加载过。