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というプロジェクト名を新規作成します.初期構造は次のとおりです.
次に、テストコードを保存するためにtestsフォルダを新規作成します.ルートパスの下でテストファイルを作成するのではなく、なぜtestsフォルダを作成するのか.これは良好なプロジェクト構造ではありません.本稿では、プロジェクトの最適構造に基づいて実践します.その後testsフォルダの下にテストファイルtest_を新規作成しますuser.py、次はプロジェクトの現在の構造です.
プロジェクトはすでに存在して、まず急いでテストコードを編纂しないで、まず開発環境を構築して、次の節はどのように完璧なPython開発環境を構築するかを紹介します.
仮想環境
本稿はpython 3に基づく.7バージョンでは、pipenvを使用して開発環境を管理していますが、pipenvを使用したことがない人もいるかもしれません.これは仮想環境を管理するのに使いやすいので、具体的には公式サイトを参照したりpipenvを使ってプロジェクトを管理したりする文章を使って使用します.ここではあなたが既に存在すると仮定します.7環境になったらpipでpipenvをインストールできます
pipenvが分からない場合は、次のコマンドを参照してください.
インストール後pipenv後、v 2 exルートの下に仮想環境を作成します.つまり、
このコマンドを実行すると、Python仮想環境をデフォルトで作成し、
v 2 exルートパスをよく見ると、以前のrequirementsと同じPipfileファイルが複数あります.txtファイルと同様に、プロジェクトの様々な依存ライブラリの情報を保存します.このPipfileファイルの構造は以下の通りです.
so、Flaskフレームを使用しているので、まずFlaskをインストールしましょう.以下のコマンドでインストールします.pipでインストールしたのではないことに注意してください.
最も簡単なFlask環境はすでに構築されており、gitを使って一度提出することができます.本文はgitに基づいて段階的にコードを提出します.gitを知らない学生は自分で反省しなければなりません.現在のプロジェクトのファイル構造を見てみましょう
Gitを使用してリモート・ウェアハウスにコミット
まとめ
本文は主にTDD方式を使って1つの技術のコミュニティを実現することを紹介して、そして初歩的にTDDの概念を紹介して、それからプロジェクトのテストの構造を構築して、コミュニティの関連する需要を紹介して、後続は需要によって開発して、最後に1つのPythonの開発環境を構築して現地の環境を隔離します.本文は主に各レベルの読者を兼ねているので、いくつかの最も基本的なものを紹介して、後続は主にTDD開発の実現を主としています.
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開発の実現を主としています.