【问题标题】:Android Testing: Can I send sms to the emulator number from test method?Android 测试:我可以通过测试方法向模拟器号码发送短信吗?
【发布时间】:2011-07-04 17:08:01
【问题描述】:

我从另一个团队收到了一些代码,并开始进行简单的改进和重构。 第一阶段是为项目添加单元测试。我需要测试解析输入短信的功能。 与上述信息相关,我的问题是: - 我可以通过测试方法向模拟器端口发送短信吗? 我已经写了下一个代码,但没有收到任何东西......

@Test
public void sendSmsTest() {
    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage("5554", null, getSms("sms1"), null, null);
}

private String getSms(String smsKey) {
    return (String) smsMessages.get(smsKey);
}

谢谢。


重新启动模拟器和 IDE 后,我在控制台中收到下一个错误:

测试运行失败:抛出异常 在 onCreate() 的 组件信息{com.example/android.test.InstrumentationTestRunner}: java.lang.NullPointerException

【问题讨论】:

    标签: java android unit-testing


    【解决方案1】:

    从主机使用类似的东西

    $ adb emu sms send 5551234 Hello Android
    

    【讨论】:

    • 我从控制台使用这种方式,但问题是我可以写一些代码来发送短信,就像上面一样?谢谢。
    • 在您的开发计算机中创建一个服务器,接收请求并将其转换为上述命令。
    【解决方案2】:

    向特定模拟器发送短信:

    $ adb -s emulator-5554 emu sms send 5551234 Hello Android
    

    【讨论】:

    • 如果您只连接到一个模拟器,您可以将命令简化为adb -e emu sms send 5551234 Hello Android,甚至保留-e 选项。 ;) 只是说嗨,德古。
    • 嗨,快乐!当您通过 stackoverflow 评论获得“嗨”时,感觉会有所不同 :) 我只记得为什么我对向特定模拟器发送 SMS 感兴趣。我们正在使用 SMS 而不是数据连接进行 VMS 移动数据同步,我们希望模拟往返于多个用户的流量:)
    【解决方案3】:

    我启动了 2 个模拟器实例,并且能够从一个实例向另一个实例发送 SMS,但是...我遇到了一个问题,它只能从我启动的第二个实例发送。看这个帖子:

    Sending sms text message from android emulator to second emulator instance

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多