October 2025
Intermediate to advanced
712 pages
9h 46m
Japanese
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
次の数章では、ユーザ入力のテストと実装について説明する。
コンテンツとしては、Django固有の具体的な話が多く、 TDDの哲学についての議論は少なめになる。とはいえテストに関する学びがないわけではない——細かいテストのコツは随所に散りばめられている。むしろ重要なのは、TDDのリズムや作業の流れを実際に体得することだろう。
この3つの短い章を終えたら、 パートIIの終わりにJavaScriptを使ったちょっとした楽しみを仕込んである。 その後はパートIIIへ進む。 ここではTDD手法の本質的な議論—— 単体テストと統合テストの比較、モックなど——に すぐに戻ると約束する。 お楽しみに!
さて、ここで少し検証を。 FTが何を点しているか再確認しよう:
$ python3 src/manage.py test functional_tests.test_list_item_validation
[...]
======================================================================
ERROR: test_cannot_add_empty_list_items (functional_tests.test_list_item_valida
tion.ItemValidationTest.test_cannot_add_empty_list_items)
---------------------------------------------------------------------
Traceback (most recent call last):
File "...goat-book/src/functional_tests/test_list_item_validation.py", line
16, in test_cannot_add_empty_list_items
self.wait_for(
~~~~~~~~~~~~~^
lambda: self.assertEqual(
^^^^^^^^^^^^^^^^^^^^^^^^^
...<2 lines>...
)
^
)
^
[...]
File "...goat-book/src/functional_tests/test_list_item_validation.py", line
18, in <lambda>
self.browser.find_element(By.CSS_SELECTOR, ".invalid-feedback").text,
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[...]
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate
element: .invalid-feedback; For documentation [...]
ユーザが空の項目を入力しようとした場合、 エラーメッセージが表示されることを期待している。
ウェブアプリでは、検証を実行できる場所は二つある: クライアント側(後述するJavaScriptやHTML5プロパティを使用)と、 ...
Read now
Unlock full access