欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

使用flask框架實(shí)現(xiàn)單元測(cè)試的原理是什么-創(chuàng)新互聯(lián)

使用flask框架實(shí)現(xiàn)單元測(cè)試的原理是什么?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

成都創(chuàng)新互聯(lián)專(zhuān)業(yè)提供聯(lián)通機(jī)房服務(wù)器托管服務(wù),為用戶(hù)提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶(hù)可自行在線購(gòu)買(mǎi)聯(lián)通機(jī)房服務(wù)器托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。

為什么要測(cè)試?

Web程序開(kāi)發(fā)過(guò)程一般包括以下幾個(gè)階段:[需求分析,設(shè)計(jì)階段,實(shí)現(xiàn)階段,測(cè)試階段]。其中測(cè)試階段通過(guò)人工或自動(dòng)來(lái)運(yùn)行測(cè)試某個(gè)系統(tǒng)的功能。目的是檢驗(yàn)其是否滿足需求,并得出特定的結(jié)果,以達(dá)到弄清楚預(yù)期結(jié)果和實(shí)際結(jié)果之間的差別的最終目的。

測(cè)試的分類(lèi):

測(cè)試從軟件開(kāi)發(fā)過(guò)程可以分為:?jiǎn)卧獪y(cè)試、集成測(cè)試、系統(tǒng)測(cè)試等。在眾多的測(cè)試中,與程序開(kāi)發(fā)人員最密切的就是單元測(cè)試,因?yàn)閱卧獪y(cè)試是由開(kāi)發(fā)人員進(jìn)行的,而其他測(cè)試都由專(zhuān)業(yè)的測(cè)試人員來(lái)完成。所以我們主要學(xué)習(xí)單元測(cè)試。

什么是單元測(cè)試?

程序開(kāi)發(fā)過(guò)程中,寫(xiě)代碼是為了實(shí)現(xiàn)需求。當(dāng)我們的代碼通過(guò)了編譯,只是說(shuō)明它的語(yǔ)法正確,功能能否實(shí)現(xiàn)則不能保證。 因此,當(dāng)我們的某些功能代碼完成后,為了檢驗(yàn)其是否滿足程序的需求??梢酝ㄟ^(guò)編寫(xiě)測(cè)試代碼,模擬程序運(yùn)行的過(guò)程,檢驗(yàn)功能代碼是否符合預(yù)期。

單元測(cè)試就是開(kāi)發(fā)者編寫(xiě)一小段代碼,檢驗(yàn)?zāi)繕?biāo)代碼的功能是否符合預(yù)期。通常情況下,單元測(cè)試主要面向一些功能單一的模塊進(jìn)行。

舉個(gè)例子:一部手機(jī)有許多零部件組成,在正式組裝一部手機(jī)前,手機(jī)內(nèi)部的各個(gè)零部件,CPU、內(nèi)存、電池、攝像頭等,都要進(jìn)行測(cè)試,這就是單元測(cè)試。

在Web開(kāi)發(fā)過(guò)程中,單元測(cè)試實(shí)際上就是一些“斷言”(assert)代碼。

斷言就是判斷一個(gè)函數(shù)或?qū)ο蟮囊粋€(gè)方法所產(chǎn)生的結(jié)果是否符合你期望的那個(gè)結(jié)果。 python中assert斷言是聲明布爾值為真的判定,如果表達(dá)式為假會(huì)發(fā)生異常。單元測(cè)試中,一般使用assert來(lái)斷言結(jié)果。

斷言方法的使用:

使用flask框架實(shí)現(xiàn)單元測(cè)試的原理是什么

斷言語(yǔ)句類(lèi)似于:

if not expression:
  raise AssertionError

常用的斷言方法:

assertEqual     如果兩個(gè)值相等,則pass
assertNotEqual  如果兩個(gè)值不相等,則pass
assertTrue      判斷bool值為T(mén)rue,則pass
assertFalse     判斷bool值為False,則pass
assertIsNone    不存在,則pass
assertIsNotNone 存在,則pass

如何測(cè)試?

簡(jiǎn)單的測(cè)試用例:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,

def fibo(x):
  if x == 0:
    resp = 0
  elif x == 1:
    resp = 1
  else:
    return fibo(x-1) + fibo(x-2)
  return resp
assert fibo(5) == 5

使用flask框架實(shí)現(xiàn)單元測(cè)試的原理是什么

單元測(cè)試的基本寫(xiě)法:

首先,定義一個(gè)類(lèi),繼承自u(píng)nittest.TestCase

import unittest
class TestClass(unitest.TestCase):
  pass

其次,在測(cè)試類(lèi)中,定義兩個(gè)測(cè)試方法

import unittest
class TestClass(unittest.TestCase):
  #該方法會(huì)首先執(zhí)行,方法名為固定寫(xiě)法
  def setUp(self):
    pass
  #該方法會(huì)在測(cè)試代碼執(zhí)行完后執(zhí)行,方法名為固定寫(xiě)法
  def tearDown(self):
    pass

最后,在測(cè)試類(lèi)中,編寫(xiě)測(cè)試代碼

import unittest
class TestClass(unittest.TestCase):
  #該方法會(huì)首先執(zhí)行,相當(dāng)于做測(cè)試前的準(zhǔn)備工作
  def setUp(self):
    pass
  #該方法會(huì)在測(cè)試代碼執(zhí)行完后執(zhí)行,相當(dāng)于做測(cè)試后的掃尾工作
  def tearDown(self):
    pass
  #測(cè)試代碼
  def test_app_exists(self):
    pass

發(fā)送郵件測(cè)試:

#coding=utf-8
import unittest
from Flask_day04 import app
class TestCase(unittest.TestCase):
  # 創(chuàng)建測(cè)試環(huán)境,在測(cè)試代碼執(zhí)行前執(zhí)行
  def setUp(self):
    self.app = app
    # 激活測(cè)試標(biāo)志
    app.config['TESTING'] = True
    self.client = self.app.test_client()
  # 在測(cè)試代碼執(zhí)行完成后執(zhí)行
  def tearDown(self):
    pass
  # 測(cè)試代碼
  def test_email(self):
    resp = self.client.get('/')
    print resp.data
    self.assertEqual(resp.data,'Sent Succeed')

數(shù)據(jù)庫(kù)測(cè)試:

#coding=utf-8
import unittest
from author_book import *
#自定義測(cè)試類(lèi),setUp方法和tearDown方法會(huì)分別在測(cè)試前后執(zhí)行。以test_開(kāi)頭的函數(shù)就是具體的測(cè)試代碼。
class DatabaseTest(unittest.TestCase):
  def setUp(self):
    app.config['TESTING'] = True
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:mysql@localhost/test0'
    self.app = app
    db.create_all()
  def tearDown(self):
    db.session.remove()
    db.drop_all()
  #測(cè)試代碼
  def test_append_data(self):
    au = Author(name='itcast')
    bk = Book(info='python')
    db.session.add_all([au,bk])
    db.session.commit()
    author = Author.query.filter_by(name='itcast').first()
    book = Book.query.filter_by(info='python').first()
    #斷言數(shù)據(jù)存在
    self.assertIsNotNone(author)
    self.assertIsNotNone(book)

看完上述內(nèi)容,你們掌握使用flask框架實(shí)現(xiàn)單元測(cè)試的原理是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

名稱(chēng)欄目:使用flask框架實(shí)現(xiàn)單元測(cè)試的原理是什么-創(chuàng)新互聯(lián)
轉(zhuǎn)載來(lái)源:http://aaarwkj.com/article20/gejjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、靜態(tài)網(wǎng)站品牌網(wǎng)站制作、微信公眾號(hào)網(wǎng)頁(yè)設(shè)計(jì)公司、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
不卡二卡三卡四卡精品| 亚洲欧美日韩在线第三页| 午夜免费福利视频一区| 欧亚日韩精品一区二区在线| av影片免费网址大全| 中文字幕久久熟女蜜桃| 国产又黄又粗的视频| 亚洲男人天堂在线播放| 国产一区二区三区精品女同| 中国亚洲视频一区二区| av天堂五月在线观看| 伊人激情一区二区三区| 成人黄色暖暖韩日视频| 欧美黄色一区二区三区视频| 97国产在线视频观看| av人妻熟女少妇蒂亚| 日韩在线啊啊啊的视频| 懂色av免费在线播放| 久久精品国产精品亚洲片| 国产一区二区欧美精品| 激情五月婷婷我有我色| 亚洲天堂av成人在线观看| 日本午夜精品在线观看| 国产成人免费自拍一区| 中文字幕有码在线朋友| 亚洲三级黄片在线观看| 亚洲天堂国产中文在线| 熟女人妻视频一区二区| 亚洲av成人精品网站推荐| 在线观看国产精品女主播户外麻豆| 亚洲中文字幕婷婷在线| 欧美一区二区三区四区久久| 日韩高清视频 一区二区| 91国产网址在线观看| 国产精品一级性生活片| 黄色录像三级黄色录像三级黄色| 精品国产一区二区三区性色av| 少妇高潮喷水下面的水| 1区2区3区精品视频| 亚洲av日韩精品一区二区| 国产三级伦理在线播放|