在 Android 中测试非活动类

发布于 2024-11-04 18:06:06 字数 136 浏览 1 评论 0原文

我知道如何在 Android 中使用 JUnit 4 测试 Activity 类,但我无法理解如何测试非活动类(它们不扩展 Activity、ListActivity 或其他一些 Activity 类,但使用一些 Android API)。请在这方面帮助我。

I know how to test Activity classes with JUnit 4 in Android but I am unable to understand how to test non-activity classes (which don't extends Activity, ListActivity, or some other Activity class, but uses some Android APIs). Please help me in this regard.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小伙你站住 2024-11-11 18:06:06

要测试非活动类:

  1. 创建一个测试项目
  2. 创建一个测试用例
  3. 作为 Android JUnit Test 运行

    public class MyClassTests 扩展 TestCase {
    
    /**
     * @参数名称
     */
    公共 myClassTests(字符串名称){
        超级(名称);
    }
    
    /*(非 Javadoc)
     * @参见junit.framework.TestCase#setUp()
     */
    protected void setUp() 抛出异常 {
        super.setUp();
                }
    
    /*(非 Javadoc)
     * @参见junit.framework.TestCase#tearDown()
     */
    protected void TeaDown() 抛出异常 {
        super.tearDown();
    }
    
    /**
     * 测试一些东西
     */
    公共最终无效testSomething(){
                失败(“尚未实施”);
        }
    }
    

To test non activity classes:

  1. create a test project
  2. create a test case
  3. run as Android JUnit Test

    public class MyClassTests extends TestCase {
    
    /**
     * @param name
     */
    public myClassTests(String name) {
        super(name);
    }
    
    /* (non-Javadoc)
     * @see junit.framework.TestCase#setUp()
     */
    protected void setUp() throws Exception {
        super.setUp();
                }
    
    /* (non-Javadoc)
     * @see junit.framework.TestCase#tearDown()
     */
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    
    /**
     * Test something
     */
    public final void testSomething() {
                fail("Not implemented yet");
        }
    }
    
暮年慕年 2024-11-11 18:06:06

Android SDK 包括 JUnit。事实上,AndroidTestCase和InstrumentationTestCase等Android测试类都继承自junit.framework.TestCase。这意味着您可以使用标准 JUnit 测试用例来测试非 Activity 类并将其包含在 Android 项目中。

例如,您可以创建一个包含要测试的简单类的 Android 项目:

public class MyClass {
    public static int getOne() {
        return 1;
    }
}

以及一个包含标准 JUnit 测试的 Android 测试项目来测试此类:

public class TestMyClass extends TestCase {

  public void testMyClass() {
      assertEquals(1, MyClass.getOne());
  }
}

并在 Android 设备或 Android 模拟器上运行它。

在评论中看到问题澄清后的更多信息:

AndroidTestCase 或其他 Android 测试类可用于测试需要访问 Android 框架其余部分的非活动类(如有必要,可在 setUp() 中提供虚拟活动) 。例如,如果您需要绑定到服务,这些可以让您访问上下文。

The Android SDK includes JUnit. In fact, the Android test classes such as AndroidTestCase and InstrumentationTestCase inherit from junit.framework.TestCase. This means that you can use a standard JUnit test case to test a non-Activity class and include it in Android Projects.

For example, you can create an Android Project with a simple class to test:

public class MyClass {
    public static int getOne() {
        return 1;
    }
}

and an Android Test Project with a standard JUnit test to test this class:

public class TestMyClass extends TestCase {

  public void testMyClass() {
      assertEquals(1, MyClass.getOne());
  }
}

and run this on an Android device or on the Android emulator.

More information after seeing clarification of question in the comments:

AndroidTestCase or other Android test classes can be used to test non-Activity classes which need access to the rest of the Android framework (with a dummy activity provided in the setUp() if necessary). These give you access to a Context if you need to, for example, bind to a service.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文