在Android中测试非活动类

时间:2011-04-29 10:21:45

标签: android unit-testing junit4

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

2 个答案:

答案 0 :(得分:18)

测试非活动类:

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

    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");
        }
    }
    

答案 1 :(得分:4)

Android SDK包含JUnit。实际上,Android测试类(如AndroidTestCase和InstrumentationTestCase)继承自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框架其余部分的非Activity类(如果需要,可以使用setUp()中提供的虚拟活动)。如果您需要(例如,绑定到服务),这些可以让您访问上下文。