2

Mockito を使用して ATG の単体テスト ケースを作成することについて考えている人はいますか? ゴーグリング中に次の議論に出くわしまし た-ATG開発の自動化されたユニットテストとNPEのテスト結果でPowerMockを 使用してATG Nucleusを取得する

ただし、Nucleus とその他の依存関係 (DAS、DPS、DSS など) のセットアップと、Mockito を使用したドロップレットのサンプル テスト クラスのサポートが必要です。

すべての依存関係を設定する必要がある場所で ATG Dust を使用しています。ATG Dust を完全に Mockito に置き換えることができるかどうか疑問に思っています。テストケースの書き方の例を次に示します -

  1. 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);
}
}
  1. ベースクラスを拡張してテストケースを書く -
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 は依存関係が大きいため、テストの実行に多くの時間がかかるためです。

ありがとう。

4

1 に答える 1