qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          [Ruby]單元測(cè)試

           1. Test::Unit框架

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

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

            2) 它提供了一個(gè)框架來(lái)組織測(cè)試。

            3) 它提供了靈活的方式來(lái)調(diào)用測(cè)試。

            Test::Unit提供一系列斷言來(lái)達(dá)到與if語(yǔ)句相同的目標(biāo),雖然存在許多不同風(fēng)格的斷言,但是它們基本上都遵循相同的模式,例如:

          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

            還可以測(cè)試是否引發(fā)異常,例如:

          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. 組織測(cè)試

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

            表示測(cè)試的類必須是Test::Unit::TestCase的子類。含有斷言的方法名必須以test開(kāi)頭。Test::Unit使用反射來(lái)查找要運(yùn)行的測(cè)試,而只有以test開(kāi)頭的方法才符合條件。

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

          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) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 荥经县| 赤壁市| 汝城县| 乌兰浩特市| 万盛区| 远安县| 扎鲁特旗| 斗六市| 日土县| 桦川县| 庆云县| 丰原市| 阜新市| 绵竹市| 亚东县| 托克逊县| 洮南市| 承德市| 嘉鱼县| 汝阳县| 平和县| 赤城县| 阿勒泰市| 黔西| 新乐市| 乌兰县| 青川县| 玉环县| 柯坪县| 瑞金市| 兰溪市| 融水| 惠来县| 抚松县| 普兰县| 长子县| 新兴县| 雷山县| 台安县| 宾阳县| 宜兰市|