亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
跨越邊界: 在集成框架中進行測試--在 Ruby on Rails 中進行單元測試
作者:網絡轉載 發布時間:[ 2013/2/27 15:39:39 ] 推薦標簽:

再次注意,Rails 已經為您創建了測試用例。框架不僅為這個簡單的小程序生成了視圖和控制器,而且還生成了有助于測試用戶界面的功能性測試。

對 Rails 應用程序進行單元測試

現在是運行一些測試的時候了。請看第一個測試,它已經在 test/unit/trail_test.rb 中寫好了:

清單 8. 第一個測試


require File.dirname(__FILE__) + '/../test_helper'

class TrailTest < Test::Unit::TestCase
   fixtures :trails

   # Replace this with your real tests.
   def test_truth
      assert true
   end
end


確實,這個測試用例算不了什么,但您可以從中看出如何構架測試代碼,而且自己的測試用例的模板也已經位。請運行測試,如清單 9 所示(包括結果):

清單 9. 運行第一個測試


> ruby test/unit/trail_test.rb
    Loaded suite test/unit/trail_test
    Started
    EE
    Finished in 0.027314 seconds.

      1) Error:
    test_truth(TrailTest):
    ActiveRecord::StatementInvalid: Mysql::Error: #42S02Table
      'trails_test.trails' doesn't exist: DELETE FROM trails

...results deleted...


測試用例失敗,但是請看輸出。第一行執行測試。第三行 EE 顯示測試的結果。如果測試用例通過,會得到 “.” 字符。如果測試用例產生錯誤,會看到 E。如果某個斷言不是 true,那么將看到 F。接下來,可以看到所請求的全部測試都將完成,以及完成這些測試需要的時間。后,將看到每個失敗的詳細原因。在這個示例中沒有表,這是有一定原因的,因為在測試數據庫中還沒有創建任何表。通過將開發方案復制到測試環境,再重新運行測試,可以修復錯誤,如清單 10 所示:

清單 10. 復制方案,重新運行測試


> rake clone_schema_to_test          (in /Users/batate/rails/trails)
> ruby test/unit/trail_test.rb
    Loaded suite test/unit/trail_test
    Started
    .
    Finished in 0.038578 seconds.

    1 tests, 1 assertions, 0 failures, 0 errors


這樣更好。但是測試還是太簡單,所以是構建一個真正的測試用例的時候了。請添加下面這個新測試用例 test_truth,如清單 11 所示:

清單 11. 添加測試用例


    def test_truth
      assert true
    end

    def test_new
      trails = Trail.find_all
      Trail.new do |trail|
        trail.name = "Barton Creek"
        trail.description = "A little water in the Spring. You'll get wet."
        trail.difficulty = "medium"
        trail.save
      end
      bc = Trail.find_by_name("Barton Creek")
      assert_equal "medium", bc.difficulty
      assert_equal trails.size + 1, Trail.find_all.size

    end


這個代碼驚人的緊湊。只需要鍵入上述代碼以及兩個斷言,可以操縱持久模型。這種經濟的投入正是腳本語言在其他環境中如此流行的原因。測試也是需要經濟投入的地方。

現在可以運行測試用例,您將看到兩個新斷言顯示在測試報告中。使用 Ruby 時,只需保存并編譯測試即可。清單 12 顯示了測試運行的結果:

清單 12. 測試結果


> ruby test/unit/trail_test.rb
    Loaded suite test/unit/trail_test
    Started
    .
    Finished in 0.038578 seconds.

    1 tests, 1 assertions, 0 failures, 0 errors
    bruce-tates-computer:~/rails/trails batate$ ruby test/unit/trail_test.rb
    Loaded suite test/unit/trail_test
    Started
    ..
    Finished in 0.182043 seconds.

    2 tests, 3 assertions, 0 failures, 0 errors


Fixture 和回滾
Java mock 對象

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 草视频在线观看 | 日韩大片观看网址 | 深夜福利91 | 中文字幕精品亚洲无线码二区 | 在线观看免费国产成人软件 | 日本操操 | 日本一区二区三区欧美在线观看 | 一级做a爰片欧美一区 | a一级毛片录像带 录像片 | 亚洲区中文字幕 | 午夜免费观看_视频在线观看 | 日韩欧美一级大片 | 377p亚洲欧洲日本大胆色噜噜 | 日本涩涩网站 | 精品久久久久久中文字幕202o | 日日干日日操日日射 | 男人使劲桶女人下面动态图片 | 天天躁日日躁狠狠躁黑人躁 | 天天做天天爱夜夜爽毛片毛片 | 日本一区二区中文字幕 | 亚洲欧美日本综合一区二区三区 | 欧美成人午夜视频免看 | 一级女性全黄生活片免费看 | 国产羞羞的视频在线观看免费 | 欧美激情视频一区二区三区 | 国产精品久久久精品视频 | 日本在线视频一区二区三区 | 亚洲一区 中文字幕 久久 | 在线成人免费 | 国产成人精品福利网站人 | 久久99精品一级毛片 | 99热青青草 | 亚洲综合99 | 在线黄色网 | 国产啪 | 在线精品播放 | 噜噜噜天天躁狠狠躁夜夜精品 | 青青网在线视频 | 日批视频网址免费观看 | 国产一级做a爱免费观看 | 精品欧美成人bd高清在线观看 |