2009年11月2日 星期一

Django Testing

最近要開始嘗試 Test-driven development (TDD) 了,簡單地說就是以測試起家,什麼想做的事,第一件事就是幫它規劃輸入的參數與預期的輸出結果,然後就開始撰寫測試的程式碼,最後才開始填寫核心程式碼。


這樣的好處除了可以替案子留下測試的簡單驗證程式碼外,以避免未來案子過大造成的相互影響,也能更明確寫程式的目標,而唯一的缺點就是耗時間。以下紀錄 Django 在 apps 裡新增 testing 的環境。



  1. 在 project 中的 apps 裡新增 tests.py 檔案和 fixtures 目錄

  2. 在 fixtures 目錄裡準備一筆測資

    • ex: record_1000.json

    • 可從現有 database 匯出

      • # python manager dumpdata your_app > record_1000.json





  3. 撰寫 tests.py 檔案

    • import django
      import views as testingAPI

      class FuncTestCase(django.test.TestCase):
          fixtures=['record_1000']
          def test_MyFunc(self):
              tags='Testing for My Func'
              arg = 0
              result=testingAPI._MyFunc( arg )
              self.assertEqual(result["errorcode"],"0")

              return



  4. 測試

    • # python manage.py test your_app'




參考資料



沒有留言:

張貼留言