我想对Android Studio中的Mqtt客户端模块进行单元测试,因为我想将数据从Android设备发送到PC,但是我不知道如何在没有真实服务器的情况下进行测试,使用Paho库。有办法吗?
答案 0 :(得分:0)
是的,在Mac,Linux或Windows计算机上使用Android Studio和Android仿真器进行开发时,很容易执行本地离线测试-
首先安装mosquitto并在本地主机上运行代理(在Windows上,双击mosquitto.exe
,在Linux / Mac上,在终端窗口中运行./mosquitto
)。
然后打开另一个“终端”窗口并运行以下命令来订阅所有主题:
./mosquito_sub -v -t "#"
或在Windows的cmd窗口中:
mosquito_sub.exe -v -t "#"
最后,在Java源代码中,在模拟器中运行时更改URL:
public static boolean isEmulator() {
return (Build.PRODUCT != null && Build.PRODUCT.toLowerCase().contains("sdk")) ||
(Build.MODEL != null && Build.MODEL.toLowerCase().contains("sdk"));
}
private static final String BROKER_URL =
isEmulator() ? "tcp://10.0.2.2/" : "tcp://test.mosquitto.org/";
答案 1 :(得分:0)
您不能使用Paho库模拟代理,但是可以使用Moquette代理(https://github.com/moquette-io/moquette)将其嵌入到现有Java应用程序中