アーカイブ
C#.NETでコンソールアプリを作るためのConsoleLib.NET
Monoでコンソールアプリケーションを作るときにargsの扱いが手間だったので作った。今のところ機能はそれだけ。dllとして書き出しているのでVB.NETやC++.NETでも使える。
shokai / ConsoleLib.NET / overview — bitbucket.org
右上からzipでダウンロードできる。mercurialを使っている人は
hg clone http://bitbucket.org/shokai/consolelibnet/ ./consolelibnet
使用例(ConsoleLibSample.exeのコード)
argsをハイフンなし、ハイフンつきなどを分けてくれる。
動かしてみる。ためしに引数を渡すと
./ConsoleLibSample.exe post -m “hello world” -o out.txt -l -s
こういう風に分割してくれる。
First: post
Switches: l s
Params:
m=hello world
output=out.txt
ARGS: post,-m,hello world,-o,out.txt,-l,-s,
VS2008で単体テスト
VisualStudio2008 professionalからIDE標準で単体テスト機能(ブラックボックステスト)が付いているので使ってみた。
俺は今まで単体テストはRSpecぐらいしかやったことがなかったし、何かライブラリを作った時はそれを使うGUI付きサンプルアプリケーションを作ることでしか動作確認してこなかったけど、これは次回からどんどん使っていく事にした。
この種のテストをブラックボックステストと呼ぶらしい。テスト対象のクラスの関数1つずつをブラックボックスと見るテストで、入出力の値に注目する。ある値を関数に入れてみて、予想した値が返ってくるかチェックすることで、関数が仕様を満たしているかチェックする。
今回はBenchmarkCounter.NETの中の処理時間を計るためのOrg.Shokai.Util.Benchmark.Counterクラスのテストを作った。Startメソッドで計測開始し、Stopメソッドで停止、その間の処理時間をミリ秒で保存できる。Start/Stopを複数回行った場合、その間の平均処理時間も求める事が出来る。
テストでは、出力値が正しい値になっているかどうかチェックする。このBenchmarkCounterのテストでは
- 処理時間を取得するメソッドの場合
→ 時間の値が0以上でなければエラー - 計測回数を取得するメソッドの場合
→ 何回か計測してみて、計測回数が合わなければエラー - 計測中かどうか?フラグの場合
→ Startメソッドにfalseだったらエラー
→ Stopメソッド後にtrueだったらエラー
続きを読む…

最近のコメント