投稿ライブラリ数:68  総ページビュー数:42,698 (今日:3 昨日:1)  総ダウンロード数:53,880  総コメント数:57 ※ニコライ2世はロシア最後の皇帝です(#001)
Mail: Pass:
[ アカウント作成 | パスワード再発行 ]
ニコライ(α) 0.002
modified:2008/03/12 10:10 ビュー数: ダウンロード数:1967 カテゴリ:ViViScript author:ももたろ [ 編集 ]
(vote cnt:3) vvsunit Ver.0.03
登録タグ:無し 【タグ追加】

----
Ver.0.03の更新内容
* 型を表す定数から「VSTYPE_OUTLINEBAR」「VSTYPE_POINTER」「VSTYPE_CLASS」を削除した。
Ver.0.02の更新内容
* ドキュメントを整えた。
変更履歴も覚えている限り記述した。
* ViViのバグによる暫定対処部分を削除。
(これによりViVi 2.02.09(RC09)以降でなければ動作しなくなりました)
* assertEquals, assertNotEqualsメソッドを追加。
* 定数名を津田さんのコメントに合わせた。
* ドキュメントを整えたので、サンプルとしてのmain関数を削除。
呼び出し元でmain関数が使われない場合でも動くようにした。
* 極力定義するメソッドを減らすようにリファクタリングした。
(サブクラスを作ってテストをするのに、制約は少ない方がよいので)
----
ViViScriptでUnitTestを行うためのライブラリです。
以下のようにして使います。
まずは、テスト対象の関数を用意します。
---- helloworld.vvs
function sayHello(name) {
if (name == "") {
name = "world";
}
return "Hello, " + name + ".";
}
----
で、それに対するテストクラスを作成します。
(XP的には順序が逆ですが、説明用なので勘弁m(_ _)m)
---- test_helloworld.vvs
#include "vvsunit.vvs"
#include "helloworld.vvs"
function main() {
class TestHelloWorld extends VVSUnit {
function testSayHello() {
//引数があれば、その人に挨拶。
this.assertEqual("Hello, momotaro.", sayHello("momotaro"));
//引数が無ければ、世界に挨拶。
this.assertEqual("Hello, world.", sayHello());
}
}
new TestHelloWorld.run();
}
----
早速実行すると、
----
testSayHello(2): <Hello, world.> expected but was <Hello, 0.>.
2 tests, 1 failures.
----
と出ました。なにやらエラーが出ています。
「testSayHello(2)」とは「testSayHello」メソッドの2つ目のassertで失敗している、
ということなので、引数が無い場合に失敗していることが分かります。
引数が無い場合は、nameには 0 が入るみたいですね。
なので、以下のように修正します。
---- helloworld.vvs(修正版)
function sayHello(name) {
if (name == 0) {
name = "world";
}
return "Hello, " + name + ".";
}
----
で、もう一度test_helloworld.vvsを実行すると、無事以下のように出力されました。
----
2 tests, 0 failures.
----
よくあるUnitTestの説明ですが、なんとなく使い方をつかんでもらえたでしょうか。
ちなみに、「テキストオブジェクトもどき」を作るときにも重宝しましたです。
そのときに作成したやつを、class定義ができるようになったので、
Java等のインターフェースに近づけて再実装してみました。

添付ファイル:"vvsunit.vvs" ダウンロード  ソースを表示


■ コメント:
#1 ももたろ 2008/03/06 18:19:37
あ、インデントが…orz
タグクラウド:
カテゴリ一覧:
  • すべて
  • ViViScript
  • キーワード
  • PHP
  • JavaScript
  • css
  • SQL
  • C/C++
  • jQuery
  • Ajax
  • MFC
  • ViViTips
ライブラリ更新順:
コメント新着順:
ビュー数ランキング:
  1. View:3497 ファイル名拡張子取得 [JavaScript]
  2. View:2007 ファイル名拡張子取得 [PHP]
  3. View:1773 1週間ごとの集計 [SQL]
  4. View:1770 桁を揃える Ver.0.04 [ViViScript]
  5. View:1675 grep結果を直接編集 [ViViScript]
  6. View:1390 イスカンダルのトーフ屋ゲーム [ViViScript]
  7. View:1292 _T("")マクロ化 [ViViTips]
  8. View:1089 倉庫番 [ViViScript]
  9. View:1071 HTML整形 [ViViScript]
  10. View:995 全フォームを閉じる [Ajax]
ダウンロード数ランキング:
  1. DL:2302 桁を揃える Ver.0.04 [ViViScript]
  2. DL:2196 grep結果を直接編集 [ViViScript]
  3. DL:1967 vvsunit Ver.0.03 [ViViScript]
  4. DL:1957 折り返しモード設定トグル切り替え [ViViScript]
  5. DL:1955 uniq [ViViScript]
  6. DL:1889 選択されている文字列を取得 [ViViScript]
  7. DL:1862 行番号付きコピー [ViViScript]
  8. DL:1856 リナンバ [ViViScript]
  9. DL:1821 カレンダー [ViViScript]
  10. DL:1784 HTML整形 [ViViScript]
評価値ランキング:
  1. Rank:5.0 (vc:4) テキストオブジェクトもどき [ViViScript]
  2. Rank:5.0 (vc:2) カレンダー [ViViScript]
  3. Rank:5.0 (vc:1) 倉庫番 [ViViScript]
  4. Rank:4.8 (vc:8) grep結果を直接編集 [ViViScript]
  5. Rank:4.7 (vc:3) 桁を揃える Ver.0.04 [ViViScript]
  6. Rank:4.7 (vc:3) vvsunit Ver.0.03 [ViViScript]
  7. Rank:4.3 (vc:3) 現在のドキュメントファイルを削除 [ViViScript]
  8. Rank:4.0 (vc:3) hello, world [jQuery]
  9. Rank:4.0 (vc:3) 行番号付きコピー [ViViScript]
  10. Rank:4.0 (vc:2) PHPマニュアル検索 [ViViScript]

Copyright (C) 2007 by Nobuhide Tsuda