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