【发布时间】:2014-06-29 21:08:52
【问题描述】:
我正在试验 MaxMind GeoIP (lite) DB。
其中一部分是尝试看看我是否可以进行可靠的单元测试。
对于单元测试,我需要一些 IP 地址,我可以依赖它始终发送相同的信息。
大多数 IP 地址会四处移动,我假设它们在 GeoIP 数据库中更加流畅,但是否有一些我可以合理依赖的 IP 地址(无论出于何种原因)?
【问题讨论】:
标签: database unit-testing ip geoip maxmind
我正在试验 MaxMind GeoIP (lite) DB。
其中一部分是尝试看看我是否可以进行可靠的单元测试。
对于单元测试,我需要一些 IP 地址,我可以依赖它始终发送相同的信息。
大多数 IP 地址会四处移动,我假设它们在 GeoIP 数据库中更加流畅,但是否有一些我可以合理依赖的 IP 地址(无论出于何种原因)?
【问题讨论】:
标签: database unit-testing ip geoip maxmind
方法 1:如果要测试您的代码在 Maxmind 报告 IP 地址位于特定国家或其他地方时的行为方式,请存根 Maxmind 库方法以返回每次测试所需的答案。我用过 Maxmind,这种方法就是我所需要的。
方法 2:选择一个您希望在您需要的国家/地区出现的主机名(例如 whitehouse.gov),每次运行测试时查找其 IP 地址,然后使用它。
【讨论】:
您也可以使用测试database from the API unit tests。这些足够小,可以包含在您的存储库中。
【讨论】:
12.87.118.0 在单元测试文件中显示“Pittsburgh PA US”,但是上个月的 Geo Lite 数据库文件显示“Garden City KS US”,在 maxmind.com/en/geoip-demo 的测试演示中我得到“McKinney TX US”
马丁,
您可以使用 Pingdom 探测服务器 IP 地址作为参考。它是 24x7 运行的物理服务器,除非数据中心需要,否则很少会重新分配到其他位置。
【讨论】: