草庐IT

ios - 是否可以测试 IBAction?

对IBOutlets进行单元测试很容易,但是IBActions呢?我试图找到一种方法来做到这一点,但没有任何运气。有什么方法可以对ViewController中的IBAction和nib文件中的按钮之间的连接进行单元测试? 最佳答案 对于完整的单元测试,每个导出/Action需要三个测试:socket是否连接到View?导出是否与我们想要的行动相关?直接调用操作,就好像它是由socket触发的一样。我一直这样做是为了测试我的ViewController。你可以看一个例子inthisscreencast.听起来您是在专门询问第二步。下

ios - 在 Objective C 中 @testable import 的替代方案是什么

我正在使用Xcode在Objective-C中提供的XCTest在Xcode中进行单元测试。我知道如何在Swift中导入模块,如下所示。@testableimportAppNameObjective-C中的备选方案是什么。 最佳答案 在ObjectiveC中,您可以简单地#import它们,因为没有像Swift中那样的“内部”方法访问限制。此外,在Xcode6上,您的主要目标应该已经链接到测试目标。如果没有,请尝试选中“测试目标”>“常规”>“测试”中的“允许测试主机应用程序API”复选框。看看thisquestion获取更多信息。

ios - 测试是否在 View Controller 方法中调用了 performSegueWithIdentifier

我正在检查一个应用程序并添加单元测试。该应用程序使用Storyboard编写,支持iOS6.1及更高版本。我已经能够毫无问题地测试所有常用的返回方法。但是,我目前对要执行的某个测试感到困惑:本质上我有一个方法,我们称之为doLogin:-(IBAction)doLogin:(UIButton*)sender{//Somelogichereif(//certaincriteriatomeet){variable=x;//importantvariablesethere[selfperformSegueWithIdentifier:@"memorableWord"sender:sender

ios - OCUnit 已弃用。将 Xcode 升级到 5.1 后出错

我刚刚更新到Xcode4.6到5.1和iOS7.0到7.1.1现在我的项目显示警告View“OCUnitDeprecatedTheproject“ProjectName”usesOCUnitforunittesting,whichisdeprecated.选择“转换为XCTest”以更新此项目以使用XCTest进行单元测试。”提交到应用商店时会影响我的应用吗?如何删除此警告(或)如何更新我的应用程序以使用XCTest进行单元测试。 最佳答案 不会,不影响应用商店提交。据我所知,如果您的应用程序仍在旧版本的iOS上运行,则也不支持XC

ios - 从 XCTestCase 访问项目代码 - UI 测试

我正在尝试在我的项目中设置UI测试。我正在进行UI测试,尝试通过我的应用程序登录提示登录。为了确保在测试启动时显示登录提示,我尝试运行项目代码库中的ServerManager.logout()。这将导致在启动时显示登录提示。importXCTestclassSmokeTest:XCTestCase{overridefuncsetUp(){super.setUp()//Putsetupcodehere.Thismethodiscalledbeforetheinvocationofeachtestmethodintheclass.//InUItestsitisusuallybesttost

ios - XCTest 不链接 iOS 框架

我正在使用xctest在命令行上运行iOS模拟器单元测试。首先我构建目标:xcodebuild-project"build/MyApp.xcodeproj"-target"MyAppUnitTests"-configuration"Debug"-sdk"iphonesimulator"build然后在测试包上运行xctest:xcrunxctest"build/build/Debug-iphonesimulator/MyAppUnitTests.xctest"这很好用,并且可以链接/System/Library/Frameworks中的框架,例如Security。但是xctest在我添

ios - 使用 XCTest 测试 RACSignals

我在当前的iOS应用程序中使用MVVM范例。最近,我也开始在项目中使用ReactiveCocoa。我现在也开始尝试使用单元测试。我面临的问题是如何正确测试我创建的自定义RACSignal。这是我正在测试的测试信号的示例。此信号与UItextField一起使用,将阻止将不需要的字符输入到textField中。在这种情况下,我只允许数字://Declaredlikeso:-(RACSignal*)onlyAllowNumbersforTextFieldSignal:(RACSignal*)signal//usedlikethis:RAC(testTextField,text)=[self.

ios - Xcode Scheme 默认位置在测试中被忽略

我已经创建了一个GPX文件并将其添加到我的项目中。如果我的项目正在运行,我可以从可能位置的下拉列表中选择GPX文件进行模拟,并让它正确应用定义的路径。该项目包含2个方案:MainScheme和MainTestScheme。我已将两者都设置为使用GPX文件作为“选项”选项卡上的“默认位置”。此外,在两种方案的“测试”区域下,我再次指定了相同的文件。主要方案运行选项主要方案测试设置测试方案运行选项测试方案测试设置当我在模拟器上运行该应用程序时,它会正确应用模拟位置。但是,当我运行测试时,模拟位置并未应用。我无法解释为什么测试没有自动应用位置。在模拟器/测试设备上编译并安装测试后,我可以使用

ios - 使用 keyValueObservingExpectationForObject 时的 XCTest 异常 :keyPath:handler:

在我的单元测试中,我使用-[XCTestCasekeyValueObservingExpectationForObject:keyPath:handler:]方法来确保我的NSOperation完成,这里是codefrommyXCDYouTubeKitproject:-(void)testStartingOnBackgroundThread{XCDYouTubeVideoOperation*operation=[[XCDYouTubeVideoOperationalloc]initWithVideoIdentifier:nillanguageIdentifier:nil];[selfk

ios - 如何在 XCTest 上使用静态库(例如 cocoapods 库)?

我正在使用CoreData,随着模型变得越来越复杂,我需要确保我引入的新更改不会在其他部分意外破坏我的模型。我可以创建单元测试并在每次我对模型进行更改时运行它们。如果出现问题,我的模型可能有问题,或者至少我知道我必须修改主要代码/测试中的一些查询。我正在使用MagicalRecord可以访问一些方便的方法。我也用cocoapods出于同样的原因,方便。问题是cocoapods创建了一个静态库并将其链接到我的目标,但在Xcode中,新的测试目标不会自动配置为链接到所讨论的目标链接到的相同库/框架。如何获得针对静态库的XCTest链接?这不仅对MagicalRecord/CoreData有