Pythonのジャンゴの例に基づいてTDDプロセス、

TDDのプロセス

機能テスト

ユニットテスト

。「テスト単位/ライト・コード」サイクル

復興

全体の処理図参照:

最初にすべてのテストを書く、テストの実行が失敗したを見て、その後、最小限のコードを記述し、いくつかの進歩を遂げ、その後、成功するまでテストループを実行します

機能テストがある場合、ユニットテスト、プログラミングを介して、このコードを行う高レベルの観点のサイクルとして機能テストがあります。

機能テストは、アプリケーションが実行されているかどうかの最終的な裁判官であり、ユニットテストは、開発プロセス全体のための補助具であります

次に例を示します。

WebページのTDD PythonのDjangoの開発を使用して、タイトルページがfirst_TDDあり、それは、タグH1、H1コンテンツのHello Worldが含まれています

1つのアプリのHelloWorldのを備えジャンゴを作成

機能テストtest1.pyを作成します。

以下からのセレンのインポートwebdriverを
インポートunittestの
:Myunittestクラス(たunittest.TestCase)
   セットアップ(自己)DEF:#テストは、前に実行されます
      self.browser = webdriver.Firefox()
   DEFティアダウン(自己):#テストは後に実行
      self.browser.quit ()
   DEF test_can_start_a_list_and_retrieve_it_later(自己):本試験方法#1 
      self.browser.get( "http://127.0.0.1:8000")
      self.assertIn( "first_TDD"、self.browser.title)#アサーション
      head_text =セルフ。.browser.find_element_tag_name( 'H1')テキスト
      self.assertIn( "Hello World"の、head_text)アサーション#1 
      #self.fail( "完了検査") #のテストの終了を事前に
      
__name__ IF __ == '__ MAIN__':
   unittest.main(警告=「無視」)#は、テストプログラムのユニットテストを開始します

 機能テスト・エラーを実行します。

AssertionErrorが:には見られない「first_TDD」「ジャンゴ:締め切りと完璧主義のためのWebフレームワーク」

Tests.pyは(ユニットテストを運ぶ)HelloWorldの下修飾します

インポートのTestCaseはからdjango.test 
django.urlsからは解決のインポート
Helloworld.viewsインポートからこんにちは
インポートrender_to_stringのdjango.template.loaderにから
クラスHomepageTest(テストケース):
    DEFのtest_root_url_resolves_to_home_page_view(セルフ):
        見つけ=解決( '/')#テストサイトのURL関係がそうするかどうか(ここではパスを持つサイトです)
        あなたはhome_pageの名前の関数を見つけることができるかどうself.assertEqual(found.func、こんにちは)#参照
    :DEFのtest_home_page_returns_correct_html(自己を)
        Respose = self.client.get(「/」)
        self.assertTemplateUsed(respose、 'hello.html') #のテンプレートがレンダリングされる検出応答

  

AttributeError:モジュールのHelloworld.viewsは '「こんにちは」は属性を持っていません

HelloWorldの中views.py変更

デフこんにちは(リクエスト):
       パス

による機能試験までライトユニットテストサイクルを介してコード  

最終テンプレート新しいhello.htmlのコードで

<!DOCTYPE HTML> 
<HTML LANG = "EN"> 
<HEAD> 
    <メタ文字コード= "UTF-8"> 
    <タイトル> first_TDD </ TITLE> 
</ HEAD> 
<BODY> 
    <H1>のHello World </ H1> 
</ BODY> 
</ HTML>

HelloWorldの次views.py

django.shortcutsインポートからレンダリング
こんにちはDEF(要求):
    リターンは(要求、 'hello.html')をレンダリング

 first_TDD次urls.py

django.conf.urlsインポートURLから
HelloWorldのインポートビューから
urlpatterns = [ 
    URL(R '^ $'、views.hello)
]

 が運営する最終のpython manage.pyテストユニットテスト

0.007sで2つのテストを実施しました

OK

機能テストのpython test1.pyにより、

-------------------------------------------------- -------------------
7.483sで実行した1つの試験

OK

開発プロセス全体の完了

 

注:次のように私はsettings.pyを修正することなく作成したpycharmと結合アプリをDjangoに、他の人が変更しなければならないかもしれません

= INSTALLED_APPS [ 
'django.contrib.admin'、
'django.contrib.auth'、
'django.contrib.contenttypes'、
'django.contrib.sessions'、
'django.contrib.messages'、
'django.contrib.staticfiles' 、
「HelloWorldのは」
]
レジスタを作成するためのプロジェクトにあなたのアプリを回すことができます

 

 

 

 

おすすめ

転載: www.cnblogs.com/chenminyu/p/11728990.html