Android功能测试;将地理位置发送到模拟器

时间:2011-12-20 09:44:53

标签: android geolocation functional-testing

我们的Android应用程序变得相当大,我们希望为我们的应用程序使用功能测试来防止回归。我们正在寻找实现这一目标的选择。

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

是否有一个框架可用于功能测试我们的Android应用程序并将这些更新发送到我们的模拟器?

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:4)

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

Unit Testing Location Service

答案 2 :(得分:0)

如果您使用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获取模拟器端口的方法,所以我手动传递端口,但如果我们能够从设备对象中找出它就会更好