Android单元测试:如何模拟信标设备
在测试Android应用程序时,有没有办法模仿灯塔 我的Android应用程序使用Android单元测试:如何模拟信标设备,android,unit-testing,mocking,altbeacon,beacon,Android,Unit Testing,Mocking,Altbeacon,Beacon,在测试Android应用程序时,有没有办法模仿灯塔 我的Android应用程序使用AltBeacon库和位置API。 我可以模拟位置提供者来注入GPS坐标,但我还需要模拟“信标API”(我使用AltBeacon库)来注入信标接近度。 这可能吗?或者使用一些模拟框架来模拟我使用的AltBeaconAPI?在我的例子中,我只需要模拟beacon,我只是使用了与API相同的方法。它们对表示信标传输的一系列字节使用AltBeaconParser: public class AltBeaconTest {
AltBeacon
库和位置API。我可以模拟位置提供者来注入GPS坐标,但我还需要模拟“信标API”(我使用
AltBeacon
库)来注入信标接近度。这可能吗?或者使用一些模拟框架来模拟我使用的
AltBeacon
API?在我的例子中,我只需要模拟beacon,我只是使用了与API相同的方法。它们对表示信标传输的一系列字节使用AltBeaconParser
:
public class AltBeaconTest {
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
@Test
public void testRecognizeBeacon() {
byte[] bytes = hexStringToByteArray("02011a1bff1801beac2f234454cf6d4a0fadf2f4911ba9ffa600010002c509");
AltBeaconParser parser = new AltBeaconParser();
Beacon beacon = parser.fromScanData(bytes, -55, null);
assertEquals("manData should be parsed", 9, ((AltBeacon) beacon).getMfgReserved() );
}
... more tests
}
公共类竞价广告{
公共静态字节[]hexStringToByteArray(字符串s){
int len=s.length();
字节[]数据=新字节[len/2];
对于(int i=0;i