ios - 使用 Swift 和 Obj-C 进行单元测试

标签 ios swift unit-testing cocoapods

我正在开始一个新的 Swift 项目,并尝试为其创建单元测试。我将 Google Analytics 框架添加到项目中,并链接了 SystemConfiguration、CoreData、libsqlite3、libz 和 libGoogleAnalyticsServices。

然后我必须手动创建一个桥接 header 并添加我将立即使用的 GA header 。该应用程序已启动并运行并发布到 GA。然后我尝试添加一些单元测试。

发生这种情况后,如果我向测试目标添加桥接 header ,我会在我的桥接 header 中收到一个错误,即 'GAI.h' file not found。我还收到来自编译器的 Segmentation Fault 11 错误。如果没有桥接头,错误仍然相同。

我已尝试将我的测试目标与 SystemConfiguration、CoreData、libsqlite3、libz 和 libGoogleAnalyticsServices 相关联。这并没有消除错误。

目前我的桥接头没有太多内容。

#import "GAI.h"
#import "GAILogger.h"
#import "GAITrackedViewController.h"
#import "GAIFields.h"

我也在使用 cocoapods,但目前我没有将它与 Google Analytics 一起使用,因为每次运行 pod 进程时我都需要手动更改配置文件。如果有帮助,这是我的 pod 文件:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'

pod 'JVFloatLabeledTextField'

# Swift Pods
pod 'Alamofire'
pod 'JSONHelper'

target 'example' do

end

target 'exampleTests' do

pod 'Quick', :git => "https://github.com/Quick/Quick"
pod 'Nimble', :git => "https://github.com/Quick/Nimble"

end

我还不能编写任何测试,因为我无法通过链接器错误。有什么想法吗?

最佳答案

正如我在上面的评论中所述,我认为我遇到了相同或类似的问题:我的代码在运行时运行良好,但是当我尝试运行测试时,我在尝试实例化一个对象时遇到了段错误 11引用了 cocoa pod 中的任何东西。我已经解决了这个问题。

当我遇到错误时,我的 Podfile 看起来像这样:

pod 'ReactiveCocoa'

target 'MyTests' do

use_frameworks!

pod 'Quick'

pod 'Nimble

结束

使用框架!是罪魁祸首:因为 use_frameworks!仅适用于测试目标,我最终在为正常目标构建时静态链接到 ReactiveCocoa,并在测试目标中动态链接。我遗漏了一些仅在动态链接时才需要的 ReactiveCocoa 导入,但编译器没有告诉我它出现了段错误。

我的 Podfile 现在看起来像这样:

use_frameworks!

pod 'ReactiveCocoa'

target 'MyTests' do

pod 'Quick'

pod 'Nimble

结束

有一些链接问题需要解决,但从那里开始很容易,因为当我编译主要目标时,我遇到了正常的错误。希望这对某人有所帮助:)

关于ios - 使用 Swift 和 Obj-C 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28435209/

相关文章:

ios - iOS 版 Swift 中父子 Controller 之间的共享模型

ios - 如何在 Storyboard 中的选项卡栏上启动导航 Controller 的第三个 View Controller

java - 通过 JNI 从 Java 使用 CoreBluetooth 时未调用 didDiscoverCharacteristics

unit-testing - Builder设计模式是否违反了单一职责原则?

java - 如何为 native Selenium 方法编写单元测试用例

asp.net-mvc - ASP.NET MVC - 测试页面到模型绑定(bind)

ios - IOS中Json值转化为NSArray解析

objective-c - 如何在 Objective-C 中的 UItableview 单元格中放置按钮?

swift - 在 Swift 中改变数据的静态结构

ios - 无法解决 "Type of expression is ambiguous without more context"错误。有人可以检查我的代码吗?