ruby-on-rails – 在Rails下测试Ruby Gems

我正在创建一些可以在Rails控制器和视图中使用的宝石.我想能够独立测试宝石.但是我无法弄清楚如何在宝石中创建一个Rails的实例,以测试这个宝石将在Rails应用程序中工作.

我强烈地喜欢使用RSpec,但是可能会适应一个Test :: Unit解决方案,或者只是使用Test :: Unit.

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

(我试过Googling,但“rails gem测试”显示了我用来测试的宝石,而不是如何测试一个宝石,我相信我已经看到了一篇文章或者关于这个话题的文章)

解决方法

看看别人的插件(插件和宝石,同样的东西)测试套件.

测试增强Active Record的插件非常简单.您可以使用use Active Record anywhere,所以您需要做的就是将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

当您想要测试控制器动作等时,会变得更加困难. My live validations plugin一个相当广泛的测试套件,嘲笑很多东西,让我通过ERb视图作为一个字符串,你可以看看.

将这些Test :: Unit示例适应于RSpec应该是微不足道的,因为它们不会在Test :: Unit中的任何东西上搭载.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...