看看其他插件(插件和 gem,同样的东西)测试套件。
测试增强 Active Record 的插件非常简单。您可以在任何地方使用 Active Record,因此在这种情况下您所要做的就是将 Active Record 连接到数据库(例如内存中的 sqlite 数据库)并测试您的 codez。
# test/test_helper.rb
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
require 'your_thing'
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
ActiveRecord::Schema.define(:version => 1) do
create_table :posts do |t|
t.string :title
t.text :excerpt, :body
end
end
class Post < ActiveRecord::Base
validates_presence_of :title
end
# test/my_test.rb
require 'test_helper'
class MyTest < Test::Unit::TestCase
def test_thing
# use Post here
end
end
当您想要测试控制器操作等时会变得更加困难。我的实时验证插件有一个相当广泛的测试套件,它可以模拟很多东西并让我将 ERb 视图作为字符串传递,你可以看看。
将这些 Test::Unit 示例改编为 RSpec 应该是微不足道的,因为它们不会搭载 Test::Unit 中的任何内容。