在Rails下测试Ruby Gems[英] Testing Ruby Gems under Rails

本文是小编为大家收集整理的关于在Rails下测试Ruby Gems的处理方法,想解了在Rails下测试Ruby Gems的问题怎么解决?在Rails下测试Ruby Gems问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在创建一些可以在导轨控制器和视图中使用的宝石.我希望能够独立测试宝石.但是我无法弄清楚如何在宝石内创建导轨实例来测试宝石将在铁轨应用中工作.

我非常喜欢使用RSPEC,但可能会适应测试::单元解决方案,或者只使用test :: unit.

我也对铁轨插件的类似解决方案感兴趣.

(我尝试了谷歌搜索,但是" Rails Gem Testing"向我展示了用于测试的宝石,而不是如何测试宝石.我敢肯定我已经看过有关该主题的文章或2.)

推荐答案

查看其他插件(插件和宝石,同一件)测试套件.

测试增强活动记录的测试插件非常容易.您可以在任何地方使用Active Record 数据库(例如,内存中的SQLite数据库)并测试您的代码.

# 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视为字符串,您可以看一下.

将这些测试::单元示例适应RSPEC应该是微不足道的,因为它们不会在测试中的任何东西上piggy背.

本文地址:https://www.itbaoku.cn/post/786484.html