| 投稿ライブラリ数:68 総ページビュー数:69,290 (今日:1 昨日:1) 総ダウンロード数:127,134 総コメント数:57 | ※ニコライ2世はロシア最後の皇帝です(#001) | 
ニコライ(α) 0.002
----
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" ダウンロード ソースを表示
| 
 
タグクラウド:
カテゴリ一覧: 
 
ライブラリ更新順:
 
  | 
 
コメント新着順: 
ビュー数ランキング:
 
 
  | 
上記で問題なければ、 を押してください。 投稿を中止したい場合は、 を押してください。
修正したい場合は、↓を修正し、【確認】を押してください。