だいたい563日前に更新最終更新日時: 2008-08-25 (月) 21:22:38 563日前
現在の位置
Memorycraft Wiki > ユニットテスト
ユニットテスト
SproutCore?にはブラウザー内部で実行できるJavaScript?のユニットテストハーネス*1が付属しています。
SproutCore?自身のユニットテストはいつでも実行できます。あたらしいブラウザでSproutCore?自身をテストしてバグを発見するというのもよいアイデアです。
- NOTE:
- このサンプルでは既にSproutCore?をインストールしてsc-serverを実行していることを前提としています。URLやコマンドにあるmy_appをあなたのアプリケーションの名前に変えてください。
WEBブラウザでのSproutCore?自身のユニットテストの実行
http://localhost:4020/sproutcore/-tests
(上のURLをブラウザで実行すると)まず最初に、トップレベルのユニットテストが実行されます。すべてのテストは"passed"になります。そうならない場合はそのブラウザではSproutCore?のバグがあります。
SproutCore?自身のユニットテストの失敗のレポート
SproutCore?自身のユニットテストのバグはすぐにhttp://sproutit.lighthouseapp.com/に報告してください。 レポートには以下の内容を含めてください。
- 失敗したテスト
- ブラウザの名前とバージョン (e.g. FireFox? 3.1.0.96.56 beta 82)
- OSの名前とバージョン (e.g. Windows XP SP3)
- テストをしたSproutCore?のバージョン(e.g. SproutCore? 0.9.9)
実行しているSproutCore?のバージョンを見るには以下のコマンドを使用してください。
$ sproutcore -v sproutcore 0.9.9
結果がコマンドラインに表示されます。
SproutCore?自身の全てのユニットテストスイートの実行
SproutCore?自身のユニットテストを全てチェックするには、右上にある"Run All Tests"ボタンをクリックします。(“Continuous Integration”のチェックボックスはまだオフにしておきます。) SproutCore?は各テストをブラウザにロードし、順次実行します。エラーは赤で表示されます。エラーがあった場合は、http://sproutit.lighthouseapp.com/にバグレポートをしてください。 各テストは左のペインのテストをクリックすることで実行できます。もう想像がついているかも知れませんが、自分でテストコードを作ることもできます。
自分のSproutCore?アプリケーションのユニットテストの実行
http://localhost:4020/my_app/-tests
(上のURLをブラウザで実行すると)“App has no tests.”というダイアログが現れます。たしかにテストは1つも書いていません。それでは追加しましょう。
新しいテストの作成と実行
$ sc-gen test my_app/test_unit_test
http://localhost:4020/my_app/-tests をリロードします。 新しいテストがあらわれ、自動的に実行されます。 (あくまでテストだけです。). テストは合格します。
継続的インテグレーションを可能にする
一歩進んで、“Continuous Integration”のチェックボックスにチェックを入れましょう。それから“Run All Tests”ボタンをクリックします。 ユニットを何度も連続して実行できます。複数のユニットテストがある場合は、それらが次々にループ実行されます。 失敗例を紹介します。apps/my_app/tests/test_unit_test.rhtmlを開くと、以下のようになっています。
<% # ========================================================================
# Test Unit Test Unit Test
# ========================================================================
%>
<% content_for('final') do %>
<script>
Test.context("Test Unit Test",{
"TODO: Add your own tests here": function() {
true.shouldEqual(true) ;
}
}) ;
if (window.main && (appMain = main)) main = null ;
</script>
<% end %>
Change line 12 to read:
true.shouldEqual(false) ;
ファイルを保存してブラウザに戻ります。赤く失敗したテストと“Unit Test Failed!”というJavaScript?アラートのダイアログを確認できるはずです。 次に“OK”ボタンを押して、アラートダイアログを閉じます。 “Continuous Integration”にチェックは入っていても、ユニットテストはテストの失敗で停止します。ファイルに戻ってfalseをtrueに変更してください。ファイルを保存するのを忘れずに。そしてブラウザの右下にある“Rerun Current Test”ボタンを押してください。
テストは合格するはずです。“Continuous Integration”がチェックされていても、もう継続的に実行されていないことを確認してください。なので、テストループをもう一度実行するために、右上の“Run All Tests”ボタンを再度押す必要があります。
- 関連ページ
- Memorycraft Wiki561日前
- SproutCore ドキュメント翻訳561日前
- SproutCoreのハック563日前