小编Mic*_*kal的帖子

如何为android单元测试提供数据文件

我正在开发使用Android的java.xml.parsers.DocumentBuilder和DocumentBuilderFactory实现从XML文件加载信息的软件.我正在编写我的对象的单元测试,我需要能够提供各种xml文件来运行测试中的代码.我正在使用Eclipse并拥有一个单独的Android测试项目.我找不到将测试xml放入测试项目的方法,以便测试中的代码可以打开文件.

  • 如果我将文件放在测试项目的/ assets中,则测试中的代码无法看到它.
  • 如果我把文件放在被测代码的/ assets中,它当然可以看到文件,但现在我把我的实际系统弄得乱七八糟的只有测试数据文件.
  • 如果我将文件复制到/ sdcard/data目录,我可以从被测试的代码中打开它们,但这会干扰我的测试自动化.

任何关于如何让不同的xml测试文件驻留在测试包中但对被测试代码可见的建议将不胜感激.

以下是我尝试构建单元测试的方法:

public class AppDescLoaderTest extends AndroidTestCase
{
  private static final String SAMPLE_XML = "sample.xml";

  private AppDescLoader       m_appDescLoader;
  private Application         m_app;

  protected void setUp() throws Exception
  {
    super.setUp();
    m_app = new Application();
    //call to system under test to load m_app using
    //a sample xml file
    m_appDescLoader = new AppDescLoader(m_app, SAMPLE_XML, getContext());
  }

  public void testLoad_ShouldPopulateDocument() throws Exception
  {
    m_appDescLoader.load();

  }    
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为SAMPLE_XML文件位于测试的上下文中,但AndroidTestCase正在为被测系统提供上下文,该系统无法从测试包中看到资产.

这是每个答案给出的修改后的代码:

public class AppDescLoaderTest extends InstrumentationTestCase
{
   ...
  protected void setUp() …
Run Code Online (Sandbox Code Playgroud)

xml android unit-testing junit3

48
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

junit3 ×1

unit-testing ×1

xml ×1