doctest初次體驗

来源:http://www.cnblogs.com/luhouxiang/archive/2017/09/11/7503451.html
-Advertisement-
Play Games

測試代碼放在兩個地方纔有效果,一個是模塊開頭,一個是函數聲明語句的下一行 doctest 的概念模型 在python的官方文檔中,對doctest是這樣介紹的: doctest模塊會搜索那些看起來像是python互動式會話中的代碼片段,然後嘗試執行並驗證結果。 從名字上是否會讓你聯想到docstri... ...


測試代碼放在兩個地方纔有效果,一個是模塊開頭,一個是函數聲明語句的下一行

doctest 的概念模型


在python的官方文檔中,對doctest是這樣介紹的:

doctest模塊會搜索那些看起來像是python互動式會話中的代碼片段,然後嘗試執行並驗證結果。

從名字上是否會讓你聯想到docstring呢?

doctest的編寫過程就像你在一個互動式shell中導入了一個被測試模塊,然後一條一條執行被測試模塊裡面的函數一樣。其實實際上doctest也是這麼編寫的,寫好一個模塊之後,在shell中測試這個模塊裡面的函數,將shell會話中的內容複製粘貼成doctest用例。

 

測試代碼驗證:unnecessary_math.py

'''
這個例子展示如何在源碼中嵌入doctest用例。
'>>>' 開頭的行就是doctest測試用例。
不帶 '>>>' 的行就是測試用例的輸出。
如果實際運行的結果與期望的結果不一致,就標記為測試失敗。
'''
def multiply(a, b):
    """
    >>> multiply(4, 3)
    12
    >>> multiply('a', 3)
    'aaa'
    """
    return a * b
if __name__=='__main__':
    import doctest
    doctest.testmod(verbose=True)

然後在命令行中定位到文件所在目錄,運行python -m doctest -v unnecessary_math.py即可。

其中參數-v表示列印細節,去除後如果沒有發現錯誤,則什麼都不顯示

測試結果如下:

image

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 因為本人對web機制瞭解較少,在使用C/libcurl中遇到了很多問題。主要的解決方式: 1,在網頁源碼中找到提交form的定位。也就是網頁文件對應form中的action屬性。往往都是提交到jsp或者php等腳本中運行的,而不是直接提交到本網頁。 2,要註意http頭。http頭的不同會引起網頁的 ...
  • C++遠征之封裝篇(上)筆記 所有內容都是聽課筆記,願課堂視頻如下: C++遠征之封裝篇(上)-慕課網http://www.imooc.com/learn/382 類和對象 1 什麼是類,什麼是對象? 對象是具體的事物,而類是出於不同的目的從對象中抽象出來的,所以,同一事物可以抽象成不同的類。 舉個 ...
  • 摘要:ThinkPHP是一個小型網站很常用的低端框架,但是不專業的文檔和編碼導致使用者很容易只知其表不知其里。這裡僅就官方文檔中未曾提及的在thinkphp中使用jquery實現ajax非同步交互略作總結。 環境:ThinkPHP3.2.3,jQuery 閱讀目錄: 正文: 在一般的網站中,都需要用到 ...
  • 這是一個高級Java面試系列題中的第一部分。這一部分論述了可變參數,斷言,垃圾回收,初始化器,令牌化,日期,日曆等等Java核心問題。 1. 什麼是可變參數? 可變參數允許調用參數數量不同的方法。請看下麵例子中的求和方法。此方法可以調用1個int參數,或2個int參數,或多個int參數。 //int ...
  • 1、首先在MyEclipse菜單欄找到"windows"下拉菜單中找到首選項(英文Prefenerces),彈出首選項界面。 2、打開java ——>editor > templates 就出現了templates界面 3、然後點擊右上角的"new",按鈕創建你的組合鍵,在"Name"處輸入你的快捷 ...
  • 剛開始先從最簡單的爬蟲邏輯入手 爬蟲最簡單的解析面真的是這樣 這隻是一個函數而已 那麼在下麵加上: 哈哈,搞定 就是這麼一個爬蟲了 太神奇 但是得到的只是網頁的html頁面的東西 而且還沒篩選 那麼就篩選吧 那就用上面的來解析一下我的博客園 解析的是<a>...</a>之間的東西 看起來還不錯吧 我 ...
  • 詳細說明:http://php.662p.com/thread-1023-1-1.html ...
  • 或許您正在使用 REST 端點(endpoint)來擺脫 Web 服務和客戶端。如果您是一名 Java 開發人員,您可能已經嘗試過 JAX-RS、Spring REST 或者兩者。但哪一個好用呢?在這篇文章中,我將介紹兩者之間的差異,使用大體相同的代碼進行對比。在之後的博文中,我將向您展示如何輕鬆地... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...