Używanie Mockito do pisania przypadków testowych ATG
Czy ktoś ma pomysł na napisanie testu jednostkowego dla ATG za pomocą Mockito? Podczas goglingu natknąłem się na następujące dyskusje -Zautomatyzowane testy jednostkowe dla rozwoju ATG iWykorzystanie PowerMock do uzyskania jądra ATG w wynikach testów w NPE
Ale potrzebuję pomocy w konfiguracji Nucleus i innych zależności (DAS, DPS, DSS itp.) I przykładowej klasy testowej dla dropletu za pomocą Mockito.
Używamy ATG Dust, gdzie musimy ustawić wszystkie zależności. Zastanawiam się, czy możemy całkowicie zastąpić ATG Dust Mockito. Oto przykład pisania przypadków testowych -
Klasa bazowa do ustawienia jądra -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);
}
}
Pisanie przypadku testowego przez rozszerzenie klasy bazowej -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
*/
}
Więc jak Mockito może sobie z tym poradzić? Ponownie, dla mnie celem jest całkowite zastąpienie ATG Dust Mockito, ponieważ ATG Dust zajmuje dużo czasu na uruchamianie testów z powodu ogromnych zależności.
Dzięki.