gpt4 book ai didi

android - 如何在 Android Studio 中创建测试?

转载 作者:IT老高 更新时间:2023-10-28 13:02:39 31 4
gpt4 key购买 nike

刚刚下载了基于 Intellij Idea 的 Android Studio。

如何创建测试?

我注意到有一个创建测试模块的选项,但这似乎没有做任何事情,只能使用 src 创建一个新项目

我还尝试按下热键 CTRL+AlT+T,它允许在现有类上创建单元测试,但它似乎想将它放在当前项目中。当然这对 TDD 没有帮助

有人在这里有经验吗?

最佳答案

此答案适用于刚开始进行 Android 测试的人。我将提供两个简单的示例来帮助您了解测试的工作原理。如果您在接下来的 10 分钟内继续进行,您将准备好开始将测试添加到您自己的应用程序中。我想你会惊讶于它是多么容易。我当然是。
Android 测试简介
您将进行两种不同类型的测试。

  • 本地单元测试。 这些在 JVM(Java 虚拟机)上本地运行。由于它们是本地的,因此速度很快。您可以使用它们来测试只需要 Java 而不需要 Android API 的代码部分。 (有时你可以制作一个假的 API 对象来在本地测试更多的东西。这被称为 mocking。模拟 Context 就是一个例子。)
  • 仪器化测试。 这些测试在真实设备或模拟器中运行。这使得它们比本地测试慢。但是,它们更灵活,因为您可以使用完整的 Android API。

  • 创建一个新项目,您将看到以下默认文件夹。
    enter image description here
    一切都已经存在,等待您创建测试。一切都已经设置好了!
    如何创建本地单元测试
    打开 ExampleUnitTest文件如上图所示。它应该看起来像这样:
    public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() throws Exception {
    assertEquals(4, 2 + 2);
    }
    }
    按绿色双箭头运行所有测试,或按绿色单箭头仅运行一个。 (在这种情况下,只有一个测试,所以他们都做同样的事情。)
    enter image description here
    它应该通过(只要 2 + 2 在您阅读此答案时仍然是 4)。恭喜,您刚刚进行了第一次测试!
    进行自己的测试
    让我们编写自己的测试。首先将此类添加到您的主应用程序项目中,以便我们进行一些测试:
    public class MyClass {
    public int add(int a, int b) {
    return a + b;
    }
    }
    现在更改 addition_isCorrect()测试类中的方法类似于以下代码(或者只是添加另一个具有不同名称的方法):
    public class ExampleUnitTest {
    @Test
    public void addition_isCorrect() throws Exception {
    MyClass myClass = new MyClass();
    int result = myClass.add(2, 2);
    int expected = 4;
    assertEquals(expected, result);
    }
    }
    再次运行它,您应该会看到它通过了。恭喜,您刚刚创建了自己的第一个测试! (好吧,从技术上讲,我猜它是我的,但是,嘿,足够接近了。我的就是你的。)
    如何创建仪器测试
    打开 ExampleInstrumentedTest文件。它应该看起来像这样:
    @RunWith(AndroidJUnit4.class)
    public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() throws Exception {
    // Context of the app under test.
    Context appContext = InstrumentationRegistry.getTargetContext();

    assertEquals("com.example.myapp", appContext.getPackageName());
    }
    }
    再次按下其中一个绿色按钮。
    enter image description here
    只要您连接了真实设备或设置了模拟器,它就应该已启动并运行您的应用程序。恭喜,您刚刚进行了第一次仪器测试!
    进行自己的测试
    仪器化测试使用 Espresso运行测试。它有点像你自己的小机器人用户,你可以测试你的应用程序。您可以告诉它执行一些操作,例如按下按钮或读取 TextView 的属性。
    您可以编写有关如何手动进行测试的说明,但由于我们刚刚开始,让我们使用 auto-record function . super 简单。
    首先在您的 UI 中添加一个按钮,以便我们可以使用。我这样做了:
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.myapp.MainActivity">

    <Button
    android:id="@+id/myButton"
    android:text="Click me"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>

    </android.support.constraint.ConstraintLayout>
    然后按 运行 > 记录浓缩咖啡测试 在菜单中。
    enter image description here
    启动后,单击模拟器中的按钮,然后在“记录”对话框中选择“确定”完成。它应该自动生成以下测试代码。
    @LargeTest
    @RunWith(AndroidJUnit4.class)
    public class MainActivityTest {

    @Rule
    public ActivityTestRule<MainActivity> mActivityTestRule = new ActivityTestRule<>(MainActivity.class);

    @Test
    public void mainActivityTest() {
    ViewInteraction appCompatButton = onView(
    allOf(withId(R.id.myButton), withText("Click me"), isDisplayed()));
    appCompatButton.perform(click());
    }
    }
    伟大的!您刚刚创建了您的第一个仪器测试!那非常容易。您可能应该添加一个断言以使其成为真正的测试,但这也很容易使用记录器来完成。观看 this video再深入一点。
    进一步研究
    我会先观看视频,然后阅读文档。这一切都非常有帮助。最后一个链接是一系列文章,这些文章涵盖了在选择测试内容时要考虑的一些重要事项。
  • Android Testing Patterns (来自 Android 开发者的短视频系列)
  • Getting Started with Testing (Android 文档)
  • Three Steps to Code Quality via TDD
  • 关于android - 如何在 Android Studio 中创建测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586409/

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