【问题标题】:Android assets used for testing用于测试的 Android 资产
【发布时间】:2012-10-30 23:14:03
【问题描述】:

我有一个 CSV 文件,我想将它用于我的 Android 测试套件。不过,我不希望它可用于主应用程序。我将它保存在我的测试项目的assets 文件夹中。然后我尝试使用

从测试中访问它
context.getAssets().open(DATA_ASSET);

DATA_ASSET 声明为

DATA_ASSET = "cards.csv"

我将context 设置为引用我正在测试的活动。但是,这显然不会像我拥有的​​那样工作,因为它将查看主应用程序的资产。我看到了解决此问题的两种可能性:

  1. 提供与测试项目一起安装的资产的正确路径
  2. 获取一个Context,它指的是测试项目的资源和资产

我还没有找到任何方法来做这些。也许还有我没有想到的第三种解决方案。如何访问与测试项目一起安装的资产?

【问题讨论】:

  • 如果您将AndroidTestCase 子类化,这不是一个干净的解决方案,但this answer 可能会帮助您为您的测试项目获得Context
  • @acj 大多数情况下我是子类化ActivityInstrumentationTestCase2,但我的一些测试是子类ActivityUnitTestCase
  • @acj 这看起来像是我需要的解决方案。谢谢!我会试试看它是否有效。
  • @acj 甜!它似乎有效。

标签: java android testing android-assets


【解决方案1】:

如果您要继承 InstrumentationTestCase 或类似的类,则可以通过执行以下操作为测试项目获取 Context

Context ctx = getInstrumentation().getContext();

【讨论】:

    猜你喜欢
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多