我知道如何在Android中使用JUnit 4测试Activity类但我无法理解如何测试非活动类(不扩展Activity,ListActivity或其他一些Activity类,但使用一些Android API) 。请帮助我。
答案 0 :(得分:18)
测试非活动类:
作为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()中提供的虚拟活动)。如果您需要(例如,绑定到服务),这些可以让您访问上下文。