首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoogleMaps中断业务逻辑单元测试

GoogleMaps中断业务逻辑单元测试
EN

Stack Overflow用户
提问于 2018-03-15 12:32:41
回答 1查看 173关注 0票数 1

我正在编写一个iOS应用程序,它使用GoogleMaps。我编写了一些单元测试来测试单独的业务逻辑模块。它们看起来是这样的:

代码语言:javascript
复制
func testIfStationsExistNearPoint1() {
        let comMangager = CommunicationManager()
        comMangager.getListOfStations(coordinates: Coordinates(longitude: Constants.Point1CoordinateLongitude, latitude: Constants.Point1CoordinateLatitude), distance: 50, completion: { (json) in
            if (json != nil) {
                let stations = StationWrapper.sharedStationWrapper.jsonToStations(json: json!)

                assert(stations.count > 0, String(format:"%ld stations", stations.count))
            }
            else {
                XCTFail("json is nil")
            }
        }) { (error) in
            XCTFail(String(format:"List of stations returned error: %@", error))
        }
    }

注意,这些单元测试与UI完全分离(在UI中使用GoogleMaps )。坐标是一个自定义类,而不是GoogleMaps CLLocationCoordinate2D)。

还请注意,应用程序本身工作正常。我100%肯定,在主应用程序中,所有与地图绘制相关的代码都是在主线程中调用的。

然而,在尝试任何单元测试时,不知何故我收到了这个错误:

com.google.Maps.LabelingBehavior (15):只能从主线程使用-UIApplication applicationState

当我在这个单元测试的第一行中设置一个断点时,它甚至没有命中。模拟器和真实设备都是一样的。

我想知道,既然我没有在单元测试中使用Google,那怎么可能呢?我尝试过寻找类似的案例,但还没有找到,这是相关的单元测试。

有什么不对,因为我觉得完全被困住了?

EN

回答 1

Stack Overflow用户

发布于 2018-03-15 13:10:34

XCode在执行单元测试之前启动应用程序。

因此,在Xcode开始执行单元测试之前,应用程序就会产生此错误。这就是为什么在测试开始时你的断点没有被击中的原因。

放置异常断点应该会引导您找到问题的根源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49299595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档