Flask Webテスト駆動開発ベストプラクティスの冒頭

3914 ワード

前言
TDDテストドライバ開発の開発方式をずっと耳にしていましたが、これまで「Python Web開発テストドライバ方法」を読みました.この本はDjangoフレームワークに基づいてテストドライバ開発(TDD)の方式に厳格に従って簡単なウェブサイトを実現しています.ずっとこのような方法で簡単なTDDの実践を試みたいと思っています.この文章は私の前のV 2 EXのウェブサイトのプロジェクトを真似て一歩一歩実践します.
TDD
テストドライバ開発(Test-driven development)はTDDと略称され、ソフトウェア開発過程における応用方法であり、限界プログラミングで提唱され、その提唱でテストプログラムを先に書き、それから符号化してその機能を実現することから名付けられた.
テスト駆動開発は2つの帽子をかぶって考える開発方式である:まず機能を実現する帽子をかぶって、テストの補助の下で、急速にその機能を実現する;再構築の帽子をかぶって、テストの保護の下で、冗長なコードを取り除くことで、コードの品質を高めます.テストは開発過程全体を駆動している:まず、駆動コードの設計と機能の実現;その後,駆動コードの再設計と再構築を行う.以上の概念はウィキペディアに由来する
需要分析
皆さんはV 2 EXコミュニティを知っていると思います.まず、技術コミュニティには以下の機能が必要です.
  • トピック:投稿トピック、修正トピック、追加トピックなど
  • ノード:トピックの分類
  • ユーザー:コミュニティにいるあなたのアイデンティティを識別する
  • コメント:コメントトピック、テクノロジーコミュニティの最も主要な機能
  • ユーザー関係:ユーザー間で
  • に注目できる
    以上の機能は1つの技術コミュニティにとって非常に重要であり,本稿ではTDD方式を用いてこのようなコミュニティを実現するために,ここで紹介する.
    テストの作成
    まず、テスト駆動開発の第一歩は、テストを作成することです.前節では、これらのニーズに基づいて簡単なテストを作成し、合格させる方法について説明しました.まずユーザー機能であり、1人のユーザーが登録、検証、ログインなどのステップを持ってから、本当にコミュニティで話題を発表するなどの機能が必要です.
    本明細書では、GitHubを使用してプロジェクトコードを管理します.ここで、v 2 exというプロジェクト名を新規作成します.初期構造は次のとおりです.
    v2ex
    ├── LICENSE
    └── README.md

    次に、テストコードを保存するためにtestsフォルダを新規作成します.ルートパスの下でテストファイルを作成するのではなく、なぜtestsフォルダを作成するのか.これは良好なプロジェクト構造ではありません.本稿では、プロジェクトの最適構造に基づいて実践します.その後testsフォルダの下にテストファイルtest_を新規作成しますuser.py、次はプロジェクトの現在の構造です.
    v2ex
    ├── LICENSE
    ├── README.md
    └── tests
        └── test_user.py
    
    1 directory, 3 files

    プロジェクトはすでに存在して、まず急いでテストコードを編纂しないで、まず開発環境を構築して、次の節はどのように完璧なPython開発環境を構築するかを紹介します.
    仮想環境
    本稿はpython 3に基づく.7バージョンでは、pipenvを使用して開発環境を管理していますが、pipenvを使用したことがない人もいるかもしれません.これは仮想環境を管理するのに使いやすいので、具体的には公式サイトを参照したりpipenvを使ってプロジェクトを管理したりする文章を使って使用します.ここではあなたが既に存在すると仮定します.7環境になったらpipでpipenvをインストールできます
    pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple(       -i   )

    pipenvが分からない場合は、次のコマンドを参照してください.
    $ pipenv -h
    ........(  )
    Usage Examples:
       Create a new project using Python 3.6, specifically:
       $ pipenv --python 3.6
    
       Install all dependencies for a project (including dev):
       $ pipenv install --dev
    
       Create a lockfile containing pre-releases:
       $ pipenv lock --pre
    
       Show a graph of your installed dependencies:
       $ pipenv graph
    
       Check your installed dependencies for security vulnerabilities:
       $ pipenv check
    
       Install a local setup.py into your virtual environment/Pipfile:
       $ pipenv install -e .
    
       Use a lower-level pip command:
       $ pipenv run pip freeze

    インストール後pipenv後、v 2 exルートの下に仮想環境を作成します.つまり、
    $ pipenv --python 3.7

    このコマンドを実行すると、Python仮想環境をデフォルトで作成し、
    $ pipenv shell        

    v 2 exルートパスをよく見ると、以前のrequirementsと同じPipfileファイルが複数あります.txtファイルと同様に、プロジェクトの様々な依存ライブラリの情報を保存します.このPipfileファイルの構造は以下の通りです.
    [[source]]
    url = "https://pypi.tuna.tsinghua.edu.cn/simple" #       
    verify_ssl = true
    name = "pypi"
    
    [packages]
    
    [dev-packages]
    
    [requires]
    python_version = "3.7"

    so、Flaskフレームを使用しているので、まずFlaskをインストールしましょう.以下のコマンドでインストールします.pipでインストールしたのではないことに注意してください.
    $ pipenv install flask
    
            TypeError: 'module' object is not callable   
       
    
    $ pipenv run pip install pip==18.0
    $ pipenv install

    最も簡単なFlask環境はすでに構築されており、gitを使って一度提出することができます.本文はgitに基づいて段階的にコードを提出します.gitを知らない学生は自分で反省しなければなりません.現在のプロジェクトのファイル構造を見てみましょう
    v2ex
    ├── LICENSE
    ├── Pipfile
    ├── Pipfile.lock
    ├── README.md
    └── tests
        └── test_user.py

    Gitを使用してリモート・ウェアハウスにコミット
      v2ex      
    $ git add .
    $ git commit -m "add tests and pipfile"
    $ git push origin master

    まとめ
    本文は主にTDD方式を使って1つの技術のコミュニティを実現することを紹介して、そして初歩的にTDDの概念を紹介して、それからプロジェクトのテストの構造を構築して、コミュニティの関連する需要を紹介して、後続は需要によって開発して、最後に1つのPythonの開発環境を構築して現地の環境を隔離します.本文は主に各レベルの読者を兼ねているので、いくつかの最も基本的なものを紹介して、後続は主にTDD開発の実現を主としています.