Mockito を使用して ATG の単体テスト ケースを作成することについて考えている人はいますか? ゴーグリング中に次の議論に出くわしまし た-ATG開発の自動化されたユニットテストとNPEのテスト結果でPowerMockを 使用してATG Nucleusを取得する
ただし、Nucleus とその他の依存関係 (DAS、DPS、DSS など) のセットアップと、Mockito を使用したドロップレットのサンプル テスト クラスのサポートが必要です。
すべての依存関係を設定する必要がある場所で ATG Dust を使用しています。ATG Dust を完全に Mockito に置き換えることができるかどうか疑問に思っています。テストケースの書き方の例を次に示します -
- Nucleus を設定するための基本クラス -
package com.ebiz.market.support; import java.io.File; import java.util.Arrays; import atg.nucleus.NucleusTestUtils; import atg.test.AtgDustCase; import atg.test.util.FileUtil; public class BaseTestCase extends AtgDustCase { public atg.nucleus.Nucleus mNucleus = null; private final String ATGHOME="C://ATG/ATG9.4//home"; private final String ATGHOMEPROPERTY = "atg.dynamo.home"; protected void setUp() throws Exception { super.setUp(); String dynamoHome = System.getProperty(ATGHOMEPROPERTY); if(dynamoHome == null) System.setProperty(ATGHOMEPROPERTY, ATGHOME); File configpath = NucleusTestUtils.getConfigpath(this.getClass(), this.getClass().getName(), true); FileUtil.copyDirectory("src/test/resources/config/test/", configpath.getAbsolutePath(), Arrays.asList(new String [] {".svn"})); copyConfigurationFiles(new String[]{"config"}, configpath.getAbsolutePath(), ".svn"); } public File getConfigPath() { return NucleusTestUtils.getConfigpath(this.getClass(), this.getClass().getName(), true); } }
- ベースクラスを拡張してテストケースを書く -
public class BizDropletTest extends BaseTestCase { private BizDroplet bizDroplet; @Before public void setUp() throws Exception { super.setUp(); mNucleus = NucleusTestUtils.startNucleusWithModules(new String[] { "DSS", "DPS", "DAFEAR" }, this.getClass(), this.getClass().getName(), "com/ebiz/market/support/droplet/BizDroplet"); autoSuggestDroplet = (AutoSuggestDroplet) mNucleus.resolveName("com/ebiz/market/support/droplet/BizDroplet"); try { bizDroplet.doStartService(); } catch (ServiceException e) { fail(e.getMessage()); } } /** Other methods */ }
では、Mockito はこれらをどのように処理できるのでしょうか? 繰り返しますが、私にとっての目標は、ATG Dust を完全に Mockito に置き換えることです。ATG Dust は依存関係が大きいため、テストの実行に多くの時間がかかるためです。
ありがとう。