gpt4 book ai didi

android - 名为 mockableAndroidJar 的 gradle 任务如何在 unitTests 中实际使用它

转载 作者:行者123 更新时间:2023-11-29 17:21:58 26 4
gpt4 key购买 nike

当我运行 ./gradlew tasks 时,我注意到一个名为 mockableAndroidJar 的构建任务。描述如下:

Creates a version of android.jar that's suitable for unit tests.

有人可以给我一个示例,说明我如何在代码中使用这个 jar mock 吗?

来自android tools page我看到了以下内容:

Unit tests run on a local JVM on your development machine. Our gradle plugin will compile source code found in src/test/java and execute it using the usual Gradle testing mechanisms. At runtime, tests will be executed against a modified version of android.jar where all final modifiers have been stripped off. This lets you use popular mocking libraries, like Mockito.

但我的问题是有人可以告诉我如何让我的测试使用这个新的 android.jar 文件而不是当前在类(class)中有期末考试的文件吗?如何指向测试以使用此 jar 代替?我看到了this question但它没有告诉我如何在测试中使用它,只给出了理论。我实际上从 shell 运行了以下命令:

./gradlew mockableAndroidJar

输出如下:

    $./gradlew mockableAndroidJar
Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=768m; support was removed in 8.0
Incremental java compilation is an incubating feature.
:app:mockableAndroidJar UP-TO-DATE

BUILD SUCCESSFUL

Total time: 1.226 secs

所以我认为我的目录结构会有一些变化,但我没有看到任何变化。 jar 文件是否自动为我交换?

最佳答案

当我在以 API 级别 23 为目标的项目中运行该目标时,它会生成此文件:

./build/generated/mockable-android-23.jar

此 jar 文件包含 API 级别 23 的所有 stub 公共(public)类定义,除了所有最终修饰符已被删除以便它们可以被模拟。

此 jar 文件会自动添加到您的测试类路径中,以便在您编译和运行测试时,您可以访问这些类以在命令行上运行单元测试时进行模拟:

./gradlew test

您必须定义自己的测试。通常将它们放在 src/test/main 中并使用 JUnit 框架来运行它们。

关于android - 名为 mockableAndroidJar 的 gradle 任务如何在 unitTests 中实际使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36249121/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com