YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← 03-38 Adding Tests To Your App

03-38 Adding Tests To Your App

Get Embed Code
4 Languages

Showing Revision 1 created 01/13/2015 by Udacity.

  1. 皆さんのアプリケーションで
    重要な機能が動いたので
  2. 今度は単体テストをする番です
  3. レッスン3のフォルダ内に
  4. UDACITYのGitHubからダウンロードした
    コードのtestフォルダがあります
  5. このフォルダにはレッスン3の終わりまで
    適用できるテストが入っています
  6. 基本的にプロファイル機能のテストです
  7. 見えないかもしれませんが
    ProfileTest.javaがあります
  8. ConferenceApiTest.javaもあります
  9. このtestフォルダを皆さんのプロジェクトの
    srcソースフォルダにコピーしてください
  10. Conference Centralのプロジェクトです
  11. これをドラッグ&ドロップするだけです
  12. 次はこのフォルダの
    targetディレクトリを削除してください
  13. プロジェクトを実行したり
    devserverで実行したり
  14. appspotにデプロイしたりする時はいつでも
  15. 生成されたものはすべて
    targetディレクトリに入ります
  16. targetディレクトリは
    削除されていれば再生されます
  17. 以前に作られた古いファイルと
    新しい出力ファイルが一緒にあると
  18. うまく作動しないことがあるので疑わしい時は
    targetディレクトリを削除してください
  19. 私たちはテストをするために確実にクリーンな
    状態から始めたいのでこれを削除します
  20. これです 消えたように見えますが
  21. ずっと消えたままではありません
    しかし今は消えました
  22. それではEclipseへ行きましょう
  23. testディレクトリを加えたので
    プロジェクトをリフレッシュします
  24. またtargetディレクトリを削除します
    そうです targetはまだここにあるのです
  25. targetディレクトリは削除されるとすぐに
  26. 自動的に再生されます
    その中にいくつか作られるものがありますが
  27. それがすべて必要なものではありません
  28. このソースディレクトリの中に
  29. testフォルダが見えるでしょう
  30. そこには2つのテストがあります
    domainパッケージのProfileTest.javaと
  31. spiパッケージのConferenceApiTest.javaです
  32. テストを見てみましょう
  33. まずProfileTest.javaを見てみます
  34. クラスProfileTestがあります
  35. 作業で必要となる値を定義します
  36. それからsetUpです
  37. セットアップですることは
    新たなプロファイルを作ることです
  38. そしていくつかの値を与えます
    このtearDownメソッドは必要です
  39. そしてこれが最初のテストtestGettersです
  40. 非常にシンプルでプロファイルの値が実際に
  41. プロファイルに入力した値かどうか
    確かめています
  42. 次にプロファイルを更新した時に
    何が起きるか確認します
  43. やることはDisplayNameとTeeShirtSizeを
    更新することです
  44. それからDisplayNameとTeeShirtSizeが
  45. 更新されていることを確認します
  46. しかしUSER_IDとEMAILは更新されず
    そのままであることが必要です
  47. この別の機能はコメントアウトします
  48. まだ組み込んでいない機能をテストするからです
  49. もしテストをしたとしてもうまくいきません
  50. 次にConferenceApiTest.javaを見てみましょう
  51. ここでも最初にやることは
    テスト用に値を用意することです
  52. ServiceTestHelperがありsetUpがあります
  53. ここで主にやっていることは
  54. EMAILとUSER_IDを持った新しいユーザを
    作ることです
  55. tearDownメソッドがあります
    そしてテストを開始します
  56. まずはGetProfileFirstTimeのテストです
  57. SaveProfileをテストします
  58. SaveProfileWithNullをテストします
  59. 別のテストを見てみましょう
  60. コメントアウトしたところに行き当たります
  61. まだ組み込まれていない機能を
    テストするところです
  62. 例えばまだ会議を設定する機能を作っていない
    CreateConferenceはテストできません
  63. このレッスンを最後までやれば
  64. ConferenceApiTest.javaに戻ってこれるので
  65. テストの準備ができてコメントは取れます
  66. それではテストをしてみましょう
  67. プロジェクトが動くのを見てみます
  68. Conference Centralに行って今度は
  69. Run AsとRun Configurationsを選びます
  70. これはローカルホストのdevserverを
    実行させるための設定です
  71. Skip Testsチェックボックスです
  72. デフォルトではテストはスキップされません
  73. 今まではテストを行っていなかったので
  74. 問題になりませんでした
  75. スキップしても問題はありませんでしたが
    今はテストが走ります
  76. もしどこかでテストが止まり
    それに気づいた時や
  77. テスト抜きでデプロイしたい場合は
  78. このSkip Testsをクリックしてください
  79. しかし今はやりません 実行しましょう
  80. 正常に走っているようです
    devserverは動いています
  81. スクロールバックして
    テスト結果を見てみましょう
  82. 7つのテストが走りました
  83. 障害ゼロ、エラーゼロ、スキップゼロです
  84. 0.415秒かかっています
  85. これがサマリです
  86. しかし実際にエラーがあった場合は
    どうなるでしょうか?
  87. テストするためにエラーを導入しましょう
  88. 私たちはプロファイル機能を
    テストしていますから
  89. プロファイルを処理する関数の1つが
  90. 予想外の結果を返すようにしましょう
  91. さてgetProfileメソッドがあります
  92. これはログインしているユーザに
    関係したプロファイルを取得します
  93. Datastoreからプロファイルエンティティを
    得るためには
  94. まずキーを作る必要があります
  95. そしてクラスを指定します
    Profile.classです
  96. それからこれがキーのuserIDです
  97. ここでエラーを作ってみましょう
  98. userIDを文字列にします
    これで何かが起きます
  99. ここではエラーは出ません
  100. ここでは有効な値なのでエラーは現れません
  101. ではテストをしたら何が起きるか見てみましょう
  102. ローカルホストでプロジェクトを実行します
    今度はエラーが出ました
  103. Failed to executeです
    テストでエラーが出ました
  104. testGetProfileでエラーが出ました
    驚くことはありません
  105. スタックトレースが見えます
  106. 最後にサマリがありテスト結果が出ています
    エラーや障害の数です
  107. 他に見てもらいたいものは
    targetディレクトリにあります
  108. プロジェクトをリフレッシュする
    必要があります
  109. targetディレクトリにはsurefire-reports
    というフォルダがあります
  110. このディレクトリには
    レポート結果が入っています
  111. ProfileTest.txtを見ると
  112. ここにはエラーはありません
    障害ゼロ、エラーゼロです
  113. ConferenceApiTest.txtを見ると
    エラーがたくさんです
  114. でも障害はゼロでエラーは1個だけです
  115. これはスタックトレースです
  116. 下に行って見てほしいのは
    XMLファイルで何が起きているかです
  117. ConferenceApiTest.xmlをクリックすると
  118. 呼ばれた関数が表示されます
  119. それとエラーも表示されます
  120. この場合エラーが出たところは
    すぐに分かります
  121. 問題はuserIDが予想されたものと
    マッチしなかったことです
  122. 忘れないうちにコードを修正しましょう
  123. 修正するコードがあります
    実行すればもうエラーは出ないでしょう
  124. レッスンを続ける中で組み込んだ
    新しい機能のテストを必ず追加してください
  125. 時には適当なレッスンフォルダから
    テストファイルを持ってくる必要があるでしょう
  126. 新たなエンドポイント関数を組み込む時には
  127. ConferenceApiTestにすでに
    存在するテストが使えます
  128. 皆さんが与えられたコードから逸脱した場合
  129. 例えば独自の関数を加えたり
    関数の機能を変えたりした場合は
  130. テストを書き換えて独自のテストを
    追加する必要があります
  131. 皆さんのアプリケーションの中の
    機能を確実にテストするためです