Android 在没有活动和服务的情况下测试类
这是我的实际课堂,我正在写下面的测试课Android 在没有活动和服务的情况下测试类,android,junit,Android,Junit,这是我的实际课堂,我正在写下面的测试课 public class ReadFile { private Scanner rx, tx; public void openFile() { try { rx = new Scanner(new File("/sys/class/net/eth0/statistics/rx_bytes")); tx = new Scanner(new File("/sys/class/net/eth0/statistics/t
public class ReadFile {
private Scanner rx, tx;
public void openFile() {
try {
rx = new Scanner(new File("/sys/class/net/eth0/statistics/rx_bytes"));
tx = new Scanner(new File("/sys/class/net/eth0/statistics/tx_bytes"));
} catch (Exception e) {
e.printStackTrace();
}
}
public String readRxFile() {
String rxData = "";
while (rx.hasNext()) {
rxData = rx.next();
}
return rxData;
}
public String readTxFile() {
String txData = "";
while (tx.hasNext()) {
txData = tx.next();
}
return txData;
}
public void closeFile() {
rx.close();
tx.close();
}
}
这是考试班。测试读取的数据
public class Testreadrxfile extends TestCase {
public Testreadrxfile() {
super();
}
protected void setUp() throws Exception {
try {
super.setUp();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ReadFile rf;
public void testappdata() {
String str1 = rf.readRxFile();
Assert.assertEquals("14081",str1 );
}
}
这就是我得到的错误
java.lang.NullPointerException
atcom.android.deviceintelligence1. test.Testreadrxfile.testappdata(Testreadrxfile.java:26)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
这不是使用getactivity()或getservice()的活动或服务测试,所以我应该做些什么来避免这个错误。提前感谢您的帮助。查看您的代码<代码>射频未初始化
ReadFile rf; // not intialisd
public void testappdata() {
String str1 = rf.readRxFile(); // equivalent to null.readRxFile();
Assert.assertEquals("14081",str1 );
}
是的,rf没有初始化。在这种情况下,要做的第一件事是将调试器附加到出现错误的行上,在大多数情况下,答案是显而易见的 更新 首先,您的代码不工作,因为您没有初始化rx,现在您的代码不工作,因为您从未调用以下函数。在函数中,您正在初始化扫描仪对象。从readRxFile函数调用此函数,您应该可以开始了
public void openFile() {
try {
rx = new Scanner(new File("/sys/class/net/eth0/statistics/rx_bytes"));
tx = new Scanner(new File("/sys/class/net/eth0/statistics/tx_bytes"));
} catch (Exception e) {
e.printStackTrace();
}
}
public String readRxFile() {
String rxData = "";
while (rx.hasNext()) { //eq. to null.haxNext()
rxData = rx.next();
}
return rxData;
}
我应该初始化什么。写入rf=getActivity不是活动。就像我现在应该初始化rf一样。我应该初始化什么。写入rf=getActivity不是活动。我现在应该初始化rf.well ReadFile rf=new ReadFile();此外,您还需要在ReadFile类中有一个构造函数,public ReadFile(){}这是基本概念,您需要初始化您的对象,否则您肯定会得到NullPointerException,这意味着某些东西没有初始化并指向“黑洞”