我是Android测试的新手,我想测试一个IntentService,我现在正在扩展ServiceTestCase.
我正在尝试使用a ResultReceiver但问题是OnReceiveResult在测试用例中从未调用过.(我也尝试创建ResultReceiverwith new Handler()作为参数insetad null但具有相同的结果.
我究竟做错了什么?什么是测试的正确方法IntentService?
这是服务:
public class MyService extends IntentService {
public MyService() {
super("MyService");
}
public MyService(String name) {
super(name);
}
@Override
protected void onHandleIntent(Intent intent) {
final int action = intent.getIntExtra("action", 0);
final int request = intent.getIntExtra("request", 0);
final ResultReceiver receiver = (ResultReceiver) intent.getExtras().get("receiver");
if (receiver == null) {
return;
}
if (action == 0 || request == 0) {
receiver.send(0, null);
return;
}
}
Run Code Online (Sandbox Code Playgroud)
} …
我刚刚开始研究java,因为我下载了eclipse并创建了一个java项目.项目工作正常,然后我导入了一个类,但由于以下行不能正常工作
StdOut.println(p + " " + q);
Run Code Online (Sandbox Code Playgroud)
搜索后,我已经用它取代了
System.out.println(p + " " + q);
Run Code Online (Sandbox Code Playgroud)
和输入相同的方式.
我试过导入system.io.*没用.然后我试着import StdIn没工作
我可以感觉到它可能是由于不同的项目模板/类型.和教程链接也会有所帮助.谢谢
当您尝试使用Robot.keyPress键入"(双引号)时,它会抛出java.lang.IllegalArgumentException:无效的键代码.
我该如何解决或解决这个问题?
如果它有帮助,我目前在Windows上.
测试代码:
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Test {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
try {
robot.keyPress(KeyEvent.VK_QUOTEDBL);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
例外:
java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Robot.java:358)
Run Code Online (Sandbox Code Playgroud)