org.seasar.framework.unit.impl
クラス ConventionTestIntrospector

java.lang.Object
  上位を拡張 org.seasar.framework.unit.impl.AnnotationTestIntrospector
      上位を拡張 org.seasar.framework.unit.impl.ConventionTestIntrospector
すべての実装されたインタフェース:
S2TestIntrospector

public class ConventionTestIntrospector
extends AnnotationTestIntrospector

命名規約を解釈してテストクラスを分析するイントロスペクターです。

作成者:
taedium

フィールドの概要
protected  String afterClassMethodName
          テストクラスの解放メソッドの名前
protected  String afterMethodName
          全テストケースの解放メソッドを名前
protected  String beforeClassMethodName
          テストクラスの初期化メソッドの名前
protected  String beforeMethodName
          全テストケースの初期化メソッドの名前
protected  Set<Class<? extends Annotation>> nonTestAnnotations
          テストメソッドとして解釈すべきでないメソッドに付与されるアノテーションのセット
protected  Set<Pattern> nonTestMethodNamePatterns
          テストメソッドとして解釈すべきでないメソッド名の正規表現
protected  String recordMethodName
          テストケース個別にモックの振る舞いを記録するメソッドの名前のプレフィックス
 
クラス org.seasar.framework.unit.impl.AnnotationTestIntrospector から継承されたフィールド
afterAnnotation, afterClassAnnotation, beforeAnnotation, beforeClassAnnotation, enableIgnore, enablePrerequisite
 
コンストラクタの概要
ConventionTestIntrospector()
           
 
メソッドの概要
 void addNonTestAnnotation(Class<? extends Annotation> annotation)
          テストメソッドと解釈すべきでないメソッドに付与するアノテーションを登録します。
 void addNonTestMethodNamePattern(String pattern)
          テストメソッドとして解釈すべきでないメソッド名の正規表現を登録します。
 List<Method> getAfterClassMethods(Class<?> clazz)
          テストクラスの解放メソッドのリストを返します。
 List<Method> getAfterMethods(Class<?> clazz)
          すべてのテストケース共通の解放メソッドのリストを返します。
 List<Method> getBeforeClassMethods(Class<?> clazz)
          テストクラスの初期化メソッドのリストを返します。
 List<Method> getBeforeMethods(Class<?> clazz)
          すべてのテストケース共通の初期化メソッドのリストを返します。
 Method getEachAfterMethod(Class<?> clazz, Method method)
          テストケース個別の解放メソッドを返します。
 Method getEachBeforeMethod(Class<?> clazz, Method method)
          テストケース個別の初期化メソッドを返します。
 Method getEachRecordMethod(Class<?> clazz, Method method)
          テストケース個別の記録メソッドを返します。
protected  Method getMethod(Class<?> clazz, String methodName)
          指定されたクラスを基点にスーパークラスを辿り指定されたメソッドを返します。
protected  List<Class<?>> getSuperClasses(Class<?> clazz)
          スーパークラスのリストを返します。
 List<Method> getTestMethods(Class<?> clazz)
          指定されたテストクラス内のすべてのテストメソッドを返します。
protected  boolean hasNonTestAnnotation(Method method)
          指定されたメソッドにテストメソッドとして解釈すべきでないアノテーションが付与されている場合true
protected  boolean hasNonTestMethodName(Method method)
          指定されたメソッドの名前がテストメソッドとして解釈すべきでない名前の場合trueを返します。
protected  boolean hasValidNonStaticSignature(Method method)
          メソッドが非staticかつ適切なシグネチャを持つ場合trueを返します。
protected  boolean hasValidSignature(Method method)
          メソッドが適切なシグネチャを持つ場合trueを返します。
protected  boolean hasValidStaticSignature(Method method)
          メソッドがstaticかつ適切なシグネチャを持つ場合trueを返します。
 void init()
          初期化メソッド
protected  boolean isShadowed(Method method, List<Method> results)
          methodresult内のメソッドに隠蔽されるならばtrueを返します。
protected  boolean isShadowed(Method current, Method previous)
          currentpreviousに隠蔽される場合trueを返します。
protected  boolean isTestMethod(Method method)
          指定されたメソッドがテストメソッドの場合trueを返します。
 void setAfterClassMethodName(String afterClassMethodName)
          テストクラスの解放メソッドの名前を設定します。
 void setAfterMethodName(String afterMethodName)
          全テストケースの解放メソッドの名前を設定します。
 void setBeforeClassMethodName(String beforeClassMethodName)
          テストクラスの初期化メソッドの名前を設定します。
 void setBeforeMethodName(String beforeMethodName)
          全テストケースの初期化メソッドの名前を設定します。
 void setRecordMethodName(String recordMethodName)
          テストケース個別にモックの振る舞いを記録するメソッドの名前のプレフィックスを設定します。
 
クラス org.seasar.framework.unit.impl.AnnotationTestIntrospector から継承されたメソッド
createExpression, createMock, createMock, expectedException, getRootDicon, getTimeout, getTxBehaviorType, isFulfilled, isFulfilled, isIgnored, needsTransaction, needsWarmDeploy, requiresTransactionCommitment, setAfterAnnotation, setAfterClassAnnotation, setBeforeAnnotation, setBeforeClassAnnotation, setEnableIgnore, setEnablePrerequisite
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

nonTestAnnotations

protected final Set<Class<? extends Annotation>> nonTestAnnotations
テストメソッドとして解釈すべきでないメソッドに付与されるアノテーションのセット


nonTestMethodNamePatterns

protected final Set<Pattern> nonTestMethodNamePatterns
テストメソッドとして解釈すべきでないメソッド名の正規表現


beforeClassMethodName

protected String beforeClassMethodName
テストクラスの初期化メソッドの名前


afterClassMethodName

protected String afterClassMethodName
テストクラスの解放メソッドの名前


beforeMethodName

protected String beforeMethodName
全テストケースの初期化メソッドの名前


afterMethodName

protected String afterMethodName
全テストケースの解放メソッドを名前


recordMethodName

protected String recordMethodName
テストケース個別にモックの振る舞いを記録するメソッドの名前のプレフィックス

コンストラクタの詳細

ConventionTestIntrospector

public ConventionTestIntrospector()
メソッドの詳細

init

public void init()
初期化メソッド


setBeforeClassMethodName

public void setBeforeClassMethodName(String beforeClassMethodName)
テストクラスの初期化メソッドの名前を設定します。

パラメータ:
beforeClassMethodName - 初期化メソッドの名前

setAfterClassMethodName

public void setAfterClassMethodName(String afterClassMethodName)
テストクラスの解放メソッドの名前を設定します。

パラメータ:
afterClassMethodName - 解放メソッドの名前

setBeforeMethodName

public void setBeforeMethodName(String beforeMethodName)
全テストケースの初期化メソッドの名前を設定します。

パラメータ:
beforeMethodName - 初期化メソッドの名前

setAfterMethodName

public void setAfterMethodName(String afterMethodName)
全テストケースの解放メソッドの名前を設定します。

パラメータ:
afterMethodName - 解放メソッドの名前

setRecordMethodName

public void setRecordMethodName(String recordMethodName)
テストケース個別にモックの振る舞いを記録するメソッドの名前のプレフィックスを設定します。

パラメータ:
recordMethodName - 記録メソッド名のプレフィックス

addNonTestAnnotation

public void addNonTestAnnotation(Class<? extends Annotation> annotation)
テストメソッドと解釈すべきでないメソッドに付与するアノテーションを登録します。

パラメータ:
annotation - テストメソッドと解釈すべきでないメソッドに付与するアノテーション

addNonTestMethodNamePattern

public void addNonTestMethodNamePattern(String pattern)
テストメソッドとして解釈すべきでないメソッド名の正規表現を登録します。

パラメータ:
pattern - テストメソッドとして解釈すべきでないメソッド名の正規表現

getBeforeClassMethods

public List<Method> getBeforeClassMethods(Class<?> clazz)
インタフェース S2TestIntrospector の記述:
テストクラスの初期化メソッドのリストを返します。

定義:
インタフェース S2TestIntrospector 内の getBeforeClassMethods
オーバーライド:
クラス AnnotationTestIntrospector 内の getBeforeClassMethods
パラメータ:
clazz - テストクラス
戻り値:
初期化メソッドのリスト

getAfterClassMethods

public List<Method> getAfterClassMethods(Class<?> clazz)
インタフェース S2TestIntrospector の記述:
テストクラスの解放メソッドのリストを返します。

定義:
インタフェース S2TestIntrospector 内の getAfterClassMethods
オーバーライド:
クラス AnnotationTestIntrospector 内の getAfterClassMethods
パラメータ:
clazz - テストクラス
戻り値:
解放メソッドのリスト

getBeforeMethods

public List<Method> getBeforeMethods(Class<?> clazz)
インタフェース S2TestIntrospector の記述:
すべてのテストケース共通の初期化メソッドのリストを返します。

定義:
インタフェース S2TestIntrospector 内の getBeforeMethods
オーバーライド:
クラス AnnotationTestIntrospector 内の getBeforeMethods
パラメータ:
clazz - テストクラス
戻り値:
初期化メソッドのリスト

getAfterMethods

public List<Method> getAfterMethods(Class<?> clazz)
インタフェース S2TestIntrospector の記述:
すべてのテストケース共通の解放メソッドのリストを返します。

定義:
インタフェース S2TestIntrospector 内の getAfterMethods
オーバーライド:
クラス AnnotationTestIntrospector 内の getAfterMethods
パラメータ:
clazz - テストクラス
戻り値:
解放メソッドのリスト

getEachBeforeMethod

public Method getEachBeforeMethod(Class<?> clazz,
                                  Method method)
インタフェース S2TestIntrospector の記述:
テストケース個別の初期化メソッドを返します。

定義:
インタフェース S2TestIntrospector 内の getEachBeforeMethod
オーバーライド:
クラス AnnotationTestIntrospector 内の getEachBeforeMethod
パラメータ:
clazz - テストクラス
method - テストメソッド
戻り値:
初期化メソッド

getEachAfterMethod

public Method getEachAfterMethod(Class<?> clazz,
                                 Method method)
インタフェース S2TestIntrospector の記述:
テストケース個別の解放メソッドを返します。

定義:
インタフェース S2TestIntrospector 内の getEachAfterMethod
オーバーライド:
クラス AnnotationTestIntrospector 内の getEachAfterMethod
パラメータ:
clazz - テストクラス
method - テストメソッド
戻り値:
解放メソッド

getEachRecordMethod

public Method getEachRecordMethod(Class<?> clazz,
                                  Method method)
インタフェース S2TestIntrospector の記述:
テストケース個別の記録メソッドを返します。

記録メソッドはEasyMockを利用して作成されたモックの振る舞いを記録するメソッドです。

定義:
インタフェース S2TestIntrospector 内の getEachRecordMethod
オーバーライド:
クラス AnnotationTestIntrospector 内の getEachRecordMethod
パラメータ:
clazz - テストクラス
method - テストメソッド
戻り値:
記録メソッド

getTestMethods

public List<Method> getTestMethods(Class<?> clazz)
インタフェース S2TestIntrospector の記述:
指定されたテストクラス内のすべてのテストメソッドを返します。

定義:
インタフェース S2TestIntrospector 内の getTestMethods
オーバーライド:
クラス AnnotationTestIntrospector 内の getTestMethods
パラメータ:
clazz - テストクラス
戻り値:
テストメソッドのリスト

getSuperClasses

protected List<Class<?>> getSuperClasses(Class<?> clazz)
スーパークラスのリストを返します。

パラメータ:
clazz - 基点となるクラス
戻り値:
スーパークラスのリスト

isShadowed

protected boolean isShadowed(Method method,
                             List<Method> results)
methodresult内のメソッドに隠蔽されるならばtrueを返します。

パラメータ:
method - 検査の対象のメソッド
results - 隠蔽されていないメソッドのリスト
戻り値:
result内のメソッドにmethodが隠蔽される場合true、そうでない場合false

isShadowed

protected boolean isShadowed(Method current,
                             Method previous)
currentpreviousに隠蔽される場合trueを返します。

パラメータ:
current - 検査の対象のメソッド
previous - 隠蔽されていないメソッド
戻り値:
<currentpreviousに隠蔽される場合true、そうでない場合false

isTestMethod

protected boolean isTestMethod(Method method)
指定されたメソッドがテストメソッドの場合trueを返します。

パラメータ:
method - メソッド
戻り値:
指定されたメソッドがテストメソッドの場合true、そうでない場合false

hasNonTestAnnotation

protected boolean hasNonTestAnnotation(Method method)
指定されたメソッドにテストメソッドとして解釈すべきでないアノテーションが付与されている場合true

パラメータ:
method - メソッド
戻り値:
指定されたメソッドにテストメソッドとして解釈すべきでないアノテーションが付与されている場合true、そうでない場合false

hasNonTestMethodName

protected boolean hasNonTestMethodName(Method method)
指定されたメソッドの名前がテストメソッドとして解釈すべきでない名前の場合trueを返します。

パラメータ:
method - メソッド
戻り値:
指定されたメソッドの名前がテストメソッドとして解釈すべきでない名前の場合true、そうでない場合false

hasValidStaticSignature

protected boolean hasValidStaticSignature(Method method)
メソッドがstaticかつ適切なシグネチャを持つ場合trueを返します。

パラメータ:
method -
戻り値:
メソッドがstaticかつ適切なシグネチャを持つ場合true、そうでない場合false

hasValidNonStaticSignature

protected boolean hasValidNonStaticSignature(Method method)
メソッドが非staticかつ適切なシグネチャを持つ場合trueを返します。

パラメータ:
method - メソッド
戻り値:
メソッドが非staticかつ適切なシグネチャを持つ場合true、そうでない場合false

hasValidSignature

protected boolean hasValidSignature(Method method)
メソッドが適切なシグネチャを持つ場合trueを返します。

適切なシグネチャをもつメソッドとは以下の条件を満たしているシグネチャを意味します。

パラメータ:
method - メソッド
戻り値:
メソッドが適切なシグネチャを持つ場合true、そうでない場合false

getMethod

protected Method getMethod(Class<?> clazz,
                           String methodName)
指定されたクラスを基点にスーパークラスを辿り指定されたメソッドを返します。

パラメータ:
clazz - 基点となるクラス
methodName - メソッド名
戻り値:
指定されたメソッド、メソッドが見つからない場合null


Copyright © 2005-2007 The Seasar Foundation. All Rights Reserved.