【问题标题】:Android unit testing: how to mock a beacon deviceAndroid 单元测试:如何模拟信标设备
【发布时间】:2015-11-06 07:41:48
【问题描述】:

在测试 Android 应用时有什么方法可以模拟信标吗?

我的 Android 应用使用 AltBeacon 库和位置 API。
我可以模拟位置提供程序以注入 GPS 坐标,但我还需要模拟“信标 API”(我使用 AltBeacon 库)来注入信标邻近度。
这可能吗?或者使用一些模拟框架来模拟我使用AltBeacon API 的部分?

【问题讨论】:

    标签: android unit-testing mocking altbeacon beacon


    【解决方案1】:

    在我的例子中,我只需要模拟信标,我只是使用与library tests 相同的方法。他们在代表信标传输的一系列字节上使用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
    }
    

    我不确定您的问题是否足以满足您的需求,但它满足了我的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      相关资源
      最近更新 更多