有人知道使用 Mockito 为 ATG 编写单元测试用例吗?我在浏览时遇到了以下讨论-ATG 开发的自动化单元测试和 使用 PowerMock 在 NPE 的测试结果中获取 ATG Nucleus
但需要帮助设置 Nucleus 和其他依赖项(DAS、DPS、DSS 等)以及使用 Mockito 的液滴示例测试类。
我们正在使用 ATG Dust,我们必须设置所有依赖项。我想知道我们是否可以用 Mockito 完全替换 ATG Dust。这是我们如何编写测试用例的示例 -
- 用于设置 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 如何处理这些?同样,对我来说,目标是完全用 Mockito 替换 ATG Dust,因为 ATG Dust 由于巨大的依赖关系而需要大量时间来运行测试。
谢谢。