プロが教える店舗&オフィスのセキュリティ対策術

JUnitではtestと名前のついたメソッドに対して、そのメソッドの前にsetUp()とtearDownメソッドを挟んで実行することができますが、その仕組みはどうやっているのでしょうか?この仕組みを知ればアスペクトプログラミングをXMLなしでできるのではないかと思いまして、、
よろしくお願いいたします。

A 回答 (2件)

Junitのソースファイルを見れば分かると思います。

    • good
    • 0

まったくの推測ですが、単にsetUp()を呼んでからテストメソッド群を呼んで、


そのクラスのテストが終わったらtearDown()を呼ぶ、という動作をリフレクションか何かでやっているだけだと思いますよ。
アスペクト指向のような振る舞いはなくともJUnitの動作は説明できます。

たとえばJUnitではテストメソッドはJUnitが自動的に呼び出してくれますが、
ユーザがわざわざテストメソッドを呼び出すコードを書いたとしましょう。
そのときに勝手にsetUp()の呼び出しをJUnitが付け加えていたら、それはアスペクト指向的な動作だと思います。
しかしユーザがテストメソッドを直接呼んだのにJUnitが勝手にsetUp()やtearDown()を付け加えたりはしません。
アスペクト指向とは無関係だと思います。
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありませんでした。

不勉強のためリフレクションという機構をはじめて知りました。
動的にメソッドを指定するのをどうやるのか
いつも疑問に思っていたのですが、これで解決です。

ご親切にありがとうございました。

お礼日時:2008/04/29 21:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!