佃さん,こんにちは.石井です.
> http://member.nifty.ne.jp/masarl/article/testing-framework.html
>
> 石井さんの記事の「TestRunnerの使い方」の章に「suiteクラスメ
> ソッドが必要」と書いていますが、MoneyTestクラスやSimpleTest
> クラスにはsuiteクラスメソッドが見当たりません。
>
> これは、石井さんが記事をかかれた時期のjunitのバージョンでは
> 必要だったということでしょうか。それとも何か私が勘違いしてい
> るのでしょうか。
この記事を書いたのは1年以上前で,JUnit のバージョンは確か 2.1 ぐらい
だったと思います.そのときの TestRunner の UI 版では,suite クラスメソッド
が必要だったのだと思います.今のUI版ではいらないのかもしれませんね.
記事を書いたときのバージョンは古いですが,JUnit に関しては最新の 3.2
からクラス構成はさほど変わってないと思います.CppUnit と VBUnit は
その後使ってないのでわかりません.
ちなみに,今の開発ではもっぱら junit.text.TestRunner を使ってまして,
テストケースは以下のようにしてます.
class SampleTest
{
public void testA() throws Exception { ... }
public void testB() throws Exception { ... }
public static void main (String[] args)
{
Test test;
if (args.length == 0) {
test = suite();
}
else {
TestSuite suite = new TestSuite();
for (int i = 0; i < args.length; ++i) {
suite.addTest(testNamed(args[i]));
}
test = suite;
}
junit.textui.TestRunner.run(test);
}
public static Test testNamed(String name)
{
return new SampleTest(name);
}
public static Test suite()
{
return new TestSuite(SampleTest.class);
}
}
こうすると,コマンドラインで テストメソッド名を指定したときは,指定された
テストメソッドのみ,何も指定しなかった場合はすべてのテストメソッドが
実行されるようになります.
では.