qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          [Ruby]單元測試

           1. Test::Unit框架

            Test::Unit框架基本上是將3個功能包裝到一個整潔的包中:

            1) 它提供了一種表示單個測試的方式。

            2) 它提供了一個框架來組織測試。

            3) 它提供了靈活的方式來調用測試。

            Test::Unit提供一系列斷言來達到與if語句相同的目標,雖然存在許多不同風格的斷言,但是它們基本上都遵循相同的模式,例如:

          require 'test/unit'
          Class TestBug < Test::Unit::TestCase
          def test_simple
          assert_equal('ok', MyClass.new(1).to_s)
          assert_equal('error', MyClass.new(2).to_s)
          end
          end

            還可以測試是否引發異常,例如:

          require 'test/unit'
          Class TestBug < Test::Unit::TestCase
          def test_raise
          assert_raise(RuntimeError) {MyClass.new('null')}
          assert_nothing_raised() {MyClass.new('normal')}
          end
          end

            2. 組織測試

            單元測試,可以被組織成更高層的形式,叫做測試用例,或分解成較底層的形式,也就是測試方法。測試用例通常包括和某個特定功能或特性相關的所有測試。

            表示測試的類必須是Test::Unit::TestCase的子類。含有斷言的方法名必須以test開頭。Test::Unit使用反射來查找要運行的測試,而只有以test開頭的方法才符合條件。

            可以把通用的一些代碼提取到setup和teardown方法中。在一個TestCase類中,一個叫做setup的方法將在每個測試方法之前運行,而叫做teardown的方法在每個測試方法結束之后運行,例如:

          require 'test/unit'
          require 'dbi'
          Class TestDB < Test::Unit::TestCase
          def setup
          @db = DBI.connetct('DBI:mysql:playlists')
          end
          def test_count
          assert_equal('10', MyClass.new(1).get_count)
          end
          def teardown
          @db.disconnect
          end
          end

          posted on 2013-08-15 10:42 順其自然EVO 閱讀(331) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 封丘县| 普安县| 宁陵县| 宣化县| 高邮市| 塘沽区| 绩溪县| 元谋县| 东乡| 桐庐县| 岳阳县| 西充县| 双流县| 个旧市| 旬阳县| 正宁县| 余庆县| 洛隆县| 宁陕县| 兴仁县| 珠海市| 巨野县| 长沙市| 分宜县| 定襄县| 库尔勒市| 湾仔区| 乃东县| 和龙市| 嘉荫县| 河北省| 临颍县| 永年县| 长岛县| 都兰县| 潜山县| 湛江市| 陇南市| 玉树县| 崇仁县| 玉林市|