自動(dòng)測(cè)試

編寫測(cè)試時(shí)一般有一些規(guī)則,以下是一些主要的規(guī)則:

  • 測(cè)試應(yīng)該關(guān)注一個(gè)小部分的功能
  • 測(cè)試必須要有明確的目的
  • 測(cè)試應(yīng)該是獨(dú)立
  • 在編碼之前,在提交和推送代碼之前運(yùn)行測(cè)試
  • 使用長(zhǎng)和描述性的名字進(jìn)行測(cè)試

6.1 運(yùn)行測(cè)試

python manage.py test rango

測(cè)試Rango中的模型

好吧,讓我們創(chuàng)建一個(gè)測(cè)試。 在類別模型中,我們要確保瀏覽數(shù)是零或正的,因?yàn)橛^點(diǎn)的數(shù)量,比方說(shuō),永遠(yuǎn)不能少于零。 為了創(chuàng)建一個(gè)測(cè)試,我們可以把下面的代碼放進(jìn)rango/ tests.py

from django.test import TestCase
from rango.models import Category

class CategoryMethodTests(TestCase):
  def test_ensure_views_are_positive(self):

  """ensure_views_are_positive should results True for categories where views are zero or positive"""

  cat=Category(name='test',views=-1, likes=0)
  cat.save()
  self.assertEqual((cat.views>=0),True)

測(cè)試結(jié)果:

Traceback (most recent call last):
File "C:\Users\XC\PycharmProjects\tango_with_django_project\rango\tests.py", line 9, in test_ensure_views_are_positive
self.assertEqual((cat.views>=0),True)
AssertionError: False != True

測(cè)試視圖

模擬客戶端,它通過(guò)在url內(nèi)部調(diào)用一個(gè)Django視圖。 在測(cè)試中,您可以訪問(wèn)響應(yīng)(包括HTML)和上下文字典。

from django.core.urlresolvers import reverse

class IndexViewTests(TestCase):
      def test_index_view_with_no_categories(self):
    """If no questions exist, an appropriate message should be displayed.
    """
          response=self.client.get(reverse('index'))
          self.assertEqual(response.status_code,200)
          self.assertContains(response,"There are no categories present.")
          self.assertQuerysetEqual(response.context['categories'], [])

6.2 覆蓋測(cè)試

代碼覆蓋率測(cè)量你的代碼庫(kù)已經(jīng)被測(cè)試了多少,以及你的代碼已經(jīng)通過(guò)測(cè)試。你可以通過(guò)pip install coverage安裝一個(gè)叫coverage的包.它會(huì)自動(dòng)分析你有多少代碼覆蓋。 一旦您安裝完成,運(yùn)行以下命令:

$ coverage run --source='.' manage.py test rango

查看

coverage report

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 已經(jīng)同步到gitbook,想閱讀的請(qǐng)轉(zhuǎn)到gitbook: Django 1.10 中文文檔 Writing you...
    leyu閱讀 750評(píng)論 0 1
  • (一)、啟動(dòng)服務(wù)器 (二)、創(chuàng)建數(shù)據(jù)庫(kù)表 或 更改數(shù)據(jù)庫(kù)表或字段 Django 1.7.1及以上 用以下命令 1....
    夏天夏星閱讀 5,965評(píng)論 0 17
  • 原文地址 作為一個(gè)好的開(kāi)發(fā)者,你會(huì)盡全力測(cè)試全部的功能和你寫的代碼邏輯及其結(jié)果。但是很少會(huì)把所有的邏輯和結(jié)果都測(cè)試...
    chdo002閱讀 884評(píng)論 0 1
  • 此段內(nèi)容簡(jiǎn)要來(lái)自自強(qiáng)學(xué)堂的教程詳情請(qǐng)查詢自強(qiáng)學(xué)堂 一、 后臺(tái)的運(yùn)作流程 接收request請(qǐng)求 處理數(shù)據(jù) 獲取請(qǐng)求...
    coder_ben閱讀 5,347評(píng)論 6 56
  • 有沒(méi)有想過(guò)老鼠的胡須是干嘛的! 老鼠的胡須給了老鼠的方向與希望。科學(xué)家做過(guò)一個(gè)試驗(yàn),把一個(gè)完好的老鼠放進(jìn)水池的中央...
    偽思考宰飛閱讀 953評(píng)論 0 2

友情鏈接更多精彩內(nèi)容