最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ruby單元測試框架TestUnit的替代者MiniTest介紹

 更新時間:2015年03月24日 09:05:18   投稿:junjie  
這篇文章主要介紹了Ruby單元測試框架TestUnit的替代者MiniTest介紹,本文先是對比了TestUnit、MiniTest的優(yōu)劣,然后給出了MiniTest的使用示例,需要的朋友可以參考下

MiniTest 是新一代的 Ruby 測試框架,它已經(jīng)成為 Ruby 1.9 的內(nèi)置測試框架,據(jù)說它也將成為Rails 4的默認測試框架,可謂前途一片光明。

MiniTest 為什么成為最新 Ruby 和 Rails 的首選,它有哪些吸引人的東西呢?

Ruby 1.8時代,Ruby 和 Rails 的默認測試框架都是 TestUnit,TestUnit 歷史悠久,它最大的問題是太慢,太臃腫了,它包含了一堆現(xiàn)在很少使用的第三方庫,比如GTk v1, GTk v2, FxRuby,另外一個大問題的是它缺乏一些基本的測試特性,比如 spec DSL的測試風格,比如 mock 支持等等。

MiniTest 相當于對 TestUnit 做了一次大的重構(gòu)翻新,它繼承了 TestUnit 大部分用法,消除 TestUnit 中不恰當?shù)囊蕾?,另外增加了基本的測試特性,比如 spec 和 mock等,整體上變得相當快速,簡單整潔。

在 Ruby 和 Rails 的世界,有一個測試框架 Rspec 使用也是非常廣泛的,甚至目前使用廣泛程度超過 TestUnit 和 MiniTest,它為什么沒有成為默認框架呢?我想 MiniTest 相對于 Rspec 最大的優(yōu)勢是簡單和延續(xù)性,Rspec 相比 MiniTest 要龐大復雜得多,當然功能也更強大,對于內(nèi)置 Ruby 的類庫來說,還是簡單和保持延續(xù)(相對 TestUnit)更有優(yōu)勢。對于 Rails 來說,Rails 之父 DHH 和 Rspec 一直對不上眼,我想是 Rails 最終選擇 MiniTest 最大的原因,哈哈。

MiniTest 使用示例

如果你用過 TestUnit,MiniTest 使用非常簡單,下面是一個測試的 Hello World

復制代碼 代碼如下:

class HelloWold
  def get_word
    "Hello World!"
  end
end

測試代碼

復制代碼 代碼如下:

require 'minitest/autorun'

class HelloWoldTest < MiniTest::Unit::TestCase
  def test_get_word
    assert_equal "Hello World!", HelloWold.new.get_word
  end
end

測試代碼, spec風格

復制代碼 代碼如下:

require 'minitest/autorun'

describe HelloWold do
  it "should return hello world" do
    HelloWold.new.get_word.must_equal "Hello World!"
  end
end

如果要在 Rails 項目使用 MiniTest,可以使用 gem minitest-rails,使用 minitest-rails 之后,rails generator 生成的 test 就都轉(zhuǎn)換為 minitest 風格代碼。

總結(jié)

MiniTest 相當簡單快速,它延續(xù) TestUnit用法,上手非常快,同時它又提供了一些非常棒的特性,試用下來覺得非常不錯,難怪它成為最新 Ruby 和 Rails 的首選,我打算今后就用它了。

您可能感興趣的文章:

相關(guān)文章

最新評論

微博| 麦盖提县| 阿拉善左旗| 洛浦县| 海丰县| 镇远县| 墨竹工卡县| 桑植县| 利川市| 射阳县| 阜宁县| 昌平区| 乳源| 康乐县| 南京市| 当涂县| 海城市| 行唐县| 类乌齐县| 娱乐| 察隅县| 临沂市| 淮滨县| 南雄市| 梨树县| 古蔺县| 泗洪县| 德令哈市| 青龙| 资溪县| 安新县| 原阳县| 利辛县| 仁怀市| 宁国市| 班戈县| 湘乡市| 鸡泽县| 丰城市| 德阳市| 肃北|