【问题标题】:Android functional test; send geo location to emulator安卓功能测试;将地理位置发送到模拟器
【发布时间】:2011-12-20 09:44:53
【问题描述】:

我们的 android 应用程序变得相当大,我们想对我们的应用程序使用功能测试来防止回归。我们正在寻找实现这一目标的选项。

我们使用地理位置,所以现在我们通过在 DDMS 中输入 lat/long 来测试应用。如果我们想对此进行测试,应该可以通过编程方式设置这些地理位置。

是否有一个框架可以用来对我们的 android 应用进行功能测试并将这些更新发送到我们的模拟器?

【问题讨论】:

    标签: android geolocation functional-testing


    【解决方案1】:

    如果你在 Eclipse 中编译,你可以在 android 模拟器中伪造 lat/lon:

    • Windows > 打开透视图 > 其他。
    • 选择 DDMS
    • 搜索模拟器控制选项卡
    • 使用位置控制随时发送纬度和经度。

    【讨论】:

    • 我们已经使用 DDMS 手动设置它,但我们希望能够在我们的应用程序由程序启动后进行设置。用monkeyrunner可以发送ADB命令,但是有ADB命令发送位置吗?
    • 好吧,您可以手动设置: 1º 如果您有 GPS 位置更新,请发表评论。 2º 编写一个函数来设置位置,创建新类 android.location.location, myclasslocation.setLatitude(latitude) 3º 按下按钮启动函数,在对话框或新活动中,您可以将意图放在选项菜单中。跨度>
    • 这可行,但我不想更改我的代码以进行测试,monkeyrunner/robotium 或 androidrunner 中是否存在解决方案,而不是将文本发送到文本字段,发送地理位置到模拟器?
    • 如果存在其他解决方案,我不知道解决方案是什么。你可以做一个 testObject.java 文件来测试它。
    • 1º 创建测试对象,调用菜单上下文,调用函数来改变,测试它。您将只更改原始代码的 2 行。我不能再帮你了。
    【解决方案2】:

    我也面临同样的问题。虽然这个解决方案没有内置在 robotsium 中,但您应该能够将其变成可用于单元测试的实用程序。

    Unit Testing Location Service

    【讨论】:

      【解决方案3】:

      如果你使用monkeyrunner,那么你可能会使用这个函数:

      def telnet(host, port):
          s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
          s.settimeout(2)
      
          # connect to remote host
          try :
              s.connect((host, port))
          except :
              print 'Unable to connect'
              sys.exit()
      
          print 'Connected to remote host'
          return s
      
      def geo_fix(port, lat, lng):
          print "setting gps to " + str(lat) + "," + str(lng)
          socket = telnet("localhost", port)
          socket.send("geo fix " + str(lng) + " " + str(lat) + "\n")
          socket.send("exit\n")
          socket.close()
      
      geo_fix(5554, 32.0878802, 34.797246)
      

      我找不到从 MonkeyDevice 获取模拟器端口的方法,所以我手动传递了端口,但如果我们能从设备对象中找出它会更好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 2020-03-24
        • 1970-01-01
        • 2013-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多