|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
内の getConfigPath
protected 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
内の onTearDown
Exception
public 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
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |