当前位置: 首页 > 面试题库 >

Android Studio单元测试中的Assets文件夹

寇景明
2023-03-14
问题内容

我有一个具有以下结构的Gradle项目:

project/
    src/
        androidTest/
            java/
        main/
            java/
            res/
            AndroidManifest.xml
    build.gradle

现在,我想添加一个使用资源(“原始”或“资产”)的单元测试。

我将资源放入project/androidTest/assets/test_file并使用getContext().getResources().getAssets().open("test_file");(在中AndroidTestCase)进行访问。

但是,这给了我一个FileNotFoundException。我怎样才能解决这个问题?


问题答案:

似乎您要创建一个有条件的单元测试,因为您想在androidTest文件夹中创建它。

您可以在测试中使用以下两行之一来获取上下文:

  • Context ctx = InstrumentationRegistry.getTargetContext(); 这将为您提供应用程序的上下文。例如,您可以使用它来获取src / main / assets中的资产。

  • Context ctx = InstrumentationRegistry.getContext(); 这将为您提供测试应用程序的上下文。您可以使用它来获取src / androidTest / assets中的资产

如果您想进一步了解单元测试中的资产,可以阅读这篇文章。在这个github文件中,您有一个例子。



 类似资料:
  • 问题内容: 我最近正在研究的程序中的一个常见任务是以某种方式修改文本文件。(嘿,我在Linux上。所有内容都是一个文件。我进行大规模的系统管理。) 但是代码修改的文件可能不存在于我的桌面盒中。而且,如果它在我的桌面上,我可能不想修改它。 我已经了解了Dive Into Python中的单元测试,并且很清楚我在测试将十进制转换为罗马数字的应用程序时想要做的事情(DintoP中的示例)。测试是完全独立

  • 我使用的是spring boot 1.4.4,我有一个测试类,比如: 这是我的application.yml: application.yml是读取的,因为我将该值存储在字符串路径值中,conf.json位于/src/main/resources和/src/test/resouces中 但我要做什么:mapper.readtree(新URL(路径));我得到错误:文件找不到。 我试过:“class

  • 当一个批处理任务写入数据库的时候,很容易去查询数据去验证结果是否如预期一样。然而,如果批处理任务写入一个文件,验证输出量同样重要。Spring Batch 提供了一个类AssertFile使输出文件的验证变得容易。assertFileEquals方法带了两个文件对象(或者是两个资源对象)和断言,一行一行的,两个文件有相同的上下文。因此,它可能创建了一个文件,有预期的输出和对比之后返回的真实结果:

  • 这是我在Python中的第一个项目,我刚刚学习了框架。测试模块运行良好,当我做,但当我想执行某个类或方法,如留档中所说,使用: 我得到以下错误: 我运行命令的目录包含(我还尝试将名称更改为),带有和方法都以开头,这里是我在终端上运行的命令: 我在任何地方都找不到类似的问题,知道错误背后的原因以及如何在模块或方法内部运行某个类将是非常好的

  • 时常组件在运行的时候需要配置你的步骤使用步骤并且迟绑定注入上下文从步骤或者是任务执行。这些是机警的测试像单独的组件除非你有一个办法设置上下文就像他们在一个步骤里执行。那是两个组件的目标在spring batch中:StepScopeTestExecutionListener 和 StepScopeTestUtils 这个监听是公开的在类级别中,它的工作是创建一个步骤为每个测试方法执行上下文。例如:

  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。