|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjunit.framework.Assert
junit.framework.TestCase
org.springframework.test.ConditionalTestCase
org.springframework.test.AbstractSpringContextTests
org.springframework.test.AbstractSingleSpringContextTests
org.springframework.test.AbstractDependencyInjectionSpringContextTests
jp.terasoluna.fw.ex.unit.testcase.MockDaoInjectedTestCase
public abstract class MockDaoInjectedTestCase
業務ロジック試験支援テストケース。
本試験では前処理中にSpringのApplicationContextを作成します。
作成時には次の設定ファイルを読み込みます。
| 設定ファイル | デフォルト値 | 変更ポイント | 備考 |
|---|---|---|---|
| モックDAO定義ファイル | mockDaoBeans.xml(jarに同梱されている) | terasoluna-unit-override.propertiesの以下にキーに対する値を設定することで、変更可能です。 mockDaoBeans.xml → mockdaobeans.fileキー 各モックDAOのBeanIDやFQCNを変更する場合はmock-dao-beans-override.propertiesをクラスパス上に配置し、 上書き設定を行ってください。 |
ファイルが存在しない場合、無視します。コンストラクタにてsetLoadDefaultConfig(boolean) でfalseを設定した場合またはisLoadDefaultConfig()がfalseを返すようにオーバライドした場合、読み込みません。 |
| モジュールBean定義ファイル | WebContext/WEB-INF/moduleContext.xml | terasoluna-unit-override.propertiesの以下にキーに対する値を設定することで、変更可能です。 WebContext → webapp.pathキー WEB-INF → webinf.dirキー moduleContext.xml → modulecontext.fileキー |
ファイルが存在しない場合、無視します。コンストラクタにてsetLoadDefaultConfig(boolean) でfalseを設定した場合またはisLoadDefaultConfig()がfalseを返すようにオーバライドした場合、読み込みません。 |
| 試験毎Bean定義ファイル | なし |
addConfigLocations(List) メソッドで読み込むBean定義ファイルパス(クラスパス相対)を追加します。引数のリストに追加したいファイルのパスをaddしてください。 |
ファイルが存在しない場合、 BeanDefinitionStoreException をスローします。 |
読み込んだBean定義ファイルに定義したBeanを試験コード中で使用する場合、以下の二種類のBean取得方法があります。 1.この方法は以下の場合には利用できません。BeanFactory.getBean(String)によって取得する方法 2. setterを定義してautowire(by type)する方法 以下のような定義がある場合を例にとって説明します。 WEB-INF/foo/fooContext.xml <!-- 前後略 --> <bean id="foo" class="com.example.Foo" /> <bean name="/foo" class="com.example.FooBLogic" /> 1.BeanFactory.getBean(String)によって取得する方法 public FooTest extendsMockDaoInjectedTestCase{ public void testDoSomething() throws Exception { Foo foo = getBean("foo"); // あるいは Foo foo = (Foo) applicationContext.getBean("foo"); int result = foo.doSomething(); assertEquals(1, result); } } public FooBLogicTest extendsMockDaoInjectedTestCase{ public void testFoo() throws Exception { FooBLogic foo = getBean("/foo"); // あるいは FooBLogic foo = (FooBLogic) applicationContext.getBean("/foo"); BLogicResult result = foo.execute(null);AssertUtils.assertBLogicSuccess(result); } } 取得するBeanのインターフェイスにAOP処理を設定している場合は、変数の型をAOP対象のインターフェイスにする必要があります。 2. setterを定義してautowire(by type)する方法 取得したいBeanのセッターを定義してください。 public FooTest extendsMockDaoInjectedTestCase{ private Foo foo; public void setFoo(Foo foo) { this.foo = foo; } public void testDoSomething() throws Exception { int result = foo.doSomething(); assertEquals(1, result); } } public FooBLogicTest extendsMockDaoInjectedTestCase{ private FooBLogic foo; public void setFoo(FooBLogic foo) { this.foo = foo; } public void testFoo() throws Exception { BLogicResult result = foo.execute(null);AssertUtils.assertBLogicSuccess(result); } }
・Bean定義ファイル中に同じ型のBeanが複数定義されている場合 ・AOP処理によりApplicationContextからProxy実装クラスとして取得される場合 QueryDAO/UpdateDAO/StoredProcedureDAO/QueryRowHandleDAOが設定されたBeanを MockDaoInjectedTestCaseの前処理で作成されたDIコンテナから取得した場合、それぞれのモックがインジェクションされます。 インジェクションされた各モックはgetMockXxxDAO()メソッドまたはprotectedなフィールドmockXxxDAOにより取得できます。 (XxxにはQuery、Update、QueryRowHandle、StoredProcedureが当てはまります) MockUpdateDAO例 public FooTest extendsMockDaoInjectedTestCase{ public void testFoo() throws Exception { FooBLogic foo = getBean("/foo"); mockUpdateDAO.addResult(1); BLogicResult result = foo.execute(null);AssertUtils.assertBLogicSuccess(result); } } mock-dao-beans-override.propertiesで行える上書き設定
| キー | 上書きできる設定 |
|---|---|
| queryDAO.id | MockQueryDAOのBeanID |
| updateDAO.id | MockUpdateDAOのBeanID |
| queryRowHandleDAO.id | MockQueryRowHandleDAOのBeanID |
| spDAO.id | MockStoredProcedureDAOのBeanID |
本クラスを継承したテストは以下の様に処理が行われます - 前処理 -- WEBAPディレクトリ(コンテキストルート)のクラスパスへの追加(TestCaseUtils.getConfigLocationsForDaoTestCase(String[])) -- Bean定義ファイル読み込み前処理(beforeGetConfig()) -- デフォルトで使用するBean定義ファイル追加 -- 読み込むBean定義ファイル追加(addConfigLocations(List)) --ApplicationContext作成 - 試験実行 - 後処理 -- 各モックDAOの初期化
| フィールドの概要 | |
|---|---|
protected MockQueryDao |
mockQueryDAO
モック参照系DAO。 |
protected MockQueryRowHandleDao |
mockQueryRowHandleDAO
モック行データハンドラDAO。 |
protected MockStoredProcedureDao |
mockStoredProcedureDAO
モックストアドプロシージャDAO。 |
protected MockUpdateDao |
mockUpdateDAO
モック更新系DAO。 |
| クラス org.springframework.test.AbstractDependencyInjectionSpringContextTests から継承されたフィールド |
|---|
AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_NO |
| クラス org.springframework.test.AbstractSingleSpringContextTests から継承されたフィールド |
|---|
applicationContext |
| クラス org.springframework.test.ConditionalTestCase から継承されたフィールド |
|---|
logger |
| コンストラクタの概要 | |
|---|---|
MockDaoInjectedTestCase()
|
|
| メソッドの概要 | ||
|---|---|---|
protected void |
addConfigLocations(List<String> configLocations)
読み込むBean定義ファイルパスを追加します。 |
|
protected void |
beforeGetConfig()
Bean定義ファイルパス取得前処理。 |
|
|
getBean(String name)
Beanを取得します。 |
|
protected String[] |
getConfigLocations()
|
|
protected String |
getConfigPath()
|
|
MockQueryDao |
getMockQueryDAO()
モック参照系DAOを返却します。 |
|
MockQueryRowHandleDao |
getMockQueryRowHandleDAO()
モック行データハンドラDAOを返却します。 |
|
MockStoredProcedureDao |
getMockStoredProcedureDAO()
モックストアドプロシージャDAOを返却します。 |
|
MockUpdateDao |
getMockUpdateDAO()
モック更新系DAOを返却します。 |
|
boolean |
isLoadDefaultConfig()
デフォルトのBean定義ファイルを読み込むかどうかを取得します。 |
|
protected void |
onTearDown()
|
|
void |
setLoadDefaultConfig(boolean loadDefaultConfig)
デフォルトのBean定義ファイルを読み込むかどうかを設定します。 |
|
void |
setMockQueryDAO(MockQueryDao mockQueryDAO)
モック参照系DAOを設定します。 |
|
void |
setMockQueryRowHandleDAO(MockQueryRowHandleDao mockQueryRowHandleDAO)
モック行データハンドラDAOを設定します。 |
|
void |
setMockStoredProcedureDAO(MockStoredProcedureDao mockStoredProcedureDAO)
モックストアドプロシージャDAOを設定します。 |
|
void |
setMockUpdateDAO(MockUpdateDao mockUpdateDAO)
モック更新系DAOを設定します。 |
|
| クラス org.springframework.test.AbstractDependencyInjectionSpringContextTests から継承されたメソッド |
|---|
getAutowireMode, injectDependencies, isDependencyCheck, isPopulateProtectedVariables, prepareTestInstance, setAutowireMode, setDependencyCheck, setPopulateProtectedVariables |
| クラス org.springframework.test.AbstractSingleSpringContextTests から継承されたメソッド |
|---|
contextKey, createApplicationContext, createBeanDefinitionReader, customizeBeanFactory, getApplicationContext, getConfigPaths, getLoadCount, loadContext, loadContextLocations, onSetUp, prepareApplicationContext, setDirty, setUp, tearDown |
| クラス org.springframework.test.AbstractSpringContextTests から継承されたメソッド |
|---|
addContext, contextKeyString, getContext, hasCachedContext, isContextKeyEmpty, setDirty |
| クラス org.springframework.test.ConditionalTestCase から継承されたメソッド |
|---|
getDisabledTestCount, isDisabledInThisEnvironment, recordDisabled, runBare |
| クラス junit.framework.TestCase から継承されたメソッド |
|---|
countTestCases, createResult, getName, run, run, runTest, setName, toString |
| クラス junit.framework.Assert から継承されたメソッド |
|---|
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail |
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| フィールドの詳細 |
|---|
protected MockQueryDao mockQueryDAO
protected MockUpdateDao mockUpdateDAO
protected MockQueryRowHandleDao mockQueryRowHandleDAO
protected MockStoredProcedureDao mockStoredProcedureDAO
| コンストラクタの詳細 |
|---|
public MockDaoInjectedTestCase()
| メソッドの詳細 |
|---|
protected final String getConfigPath()
org.springframework.test.AbstractSingleSpringContextTests 内の getConfigPathprotected void beforeGetConfig()
DIコンテナを作成する前に実行したい処理はこのメソッドをオーバライドして実行してください。 例:JNDIをアクティベートする等
protected void addConfigLocations(List<String> configLocations)
引数のBean定義ファイルパスリストに追加したいファイルのパスをaddするようオーバーライドしてください。
configLocations - 読み込むBean定義ファイルリストpublic <T> T getBean(String name)
T - 取得するBeanの型name - beanのidまたはname
protected final String[] getConfigLocations()
org.springframework.test.AbstractSingleSpringContextTests 内の getConfigLocations
protected void onTearDown()
throws Exception
org.springframework.test.AbstractSingleSpringContextTests 内の onTearDownExceptionpublic void setLoadDefaultConfig(boolean loadDefaultConfig)
loadDefaultConfig - デフォルトのBean定義ファイルを読み込むかどうかpublic boolean isLoadDefaultConfig()
public void setMockQueryDAO(MockQueryDao mockQueryDAO)
mockQueryDAO - モック参照系DAOpublic MockQueryDao getMockQueryDAO()
public MockUpdateDao getMockUpdateDAO()
public void setMockUpdateDAO(MockUpdateDao mockUpdateDAO)
mockUpdateDAO - モック更新系DAOpublic MockQueryRowHandleDao getMockQueryRowHandleDAO()
public void setMockQueryRowHandleDAO(MockQueryRowHandleDao mockQueryRowHandleDAO)
mockQueryRowHandleDAO - モック行データハンドラDAOpublic MockStoredProcedureDao getMockStoredProcedureDAO()
public void setMockStoredProcedureDAO(MockStoredProcedureDao mockStoredProcedureDAO)
mockStoredProcedureDAO - モックストアドプロシージャDAO
|
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||