u-ryo's blog

various information for coding...

Category: Javadoc

Testing Code in Javadoc Using Groovy

| Comments

pythonにはdoctestというのがあって、 method前段に書いた動作例documentをtestとして動かせるそうな。 同じようなのがJavaにも無いかなと探してみると、 groovy.util.JavadocAssertionTestSuiteを使ってJavadocにtesting codeを書けるんだそう。 うさぎ組 プロダクトコードのJavaDocにテストコードを書く方法より。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Sample {

    /**
     * add prefix 'sample'.
     * <pre class="groovyTestCase">
     *    def sample = new org.kyon_mm.Sample()
     *    assert 'sample foo' == sample.prefixSample("foo")
     * </pre>
     */
    String prefixSample(aaa){
        return "sample $aaa"
    }

}

と書いて、

1
2
3
4
5
6
7
8
9
10
11
import junit.framework.Test
import junit.framework.TestCase
import junit.framework.TestSuite

class ReferenceTests extends TestCase {
    static Test suite()  {
        def suite = new TestSuite()
        suite.addTest( JavadocAssertionTestSuite.suite( 'src/main' ) )
        suite
    }
}

と書けば、gradleでもtestしてくれるそう。 こんなのがあったなんてびっくりポンです。 JDoctestというのもありますが、 Javascriptで記述するというのでGroovyの方がいいですよね。