Tag: unit testing

unit testingparsing框架iOS

我正在尝试为使用Parse后端框架的iOS应用程序编写unit testing,而且在编写成功的unit testing之后,大量的实验似乎都失败了。 我在testingasynchronous代码( 在iOS中testingunit testing中的asynchronous调用 )和testingnetworking调用方面发现了一些post,但是还没有find用asynchronouscallbacktesting对Parse后端调用的方法。 举个例子,任何人都可以build议我如何testing下面这行代码: [PFUser saveUser:userModelMock withBlock:^(BOOL success, NSError *error) { }]; 我正在使用OCMock和XCTest框架。 任何帮助将非常感激。 *编辑*这是我迄今为止,但似乎失败 – (void)testSaveUser { id userModelMock = [OCMockObject niceMockForClass:[UserModel class]]; id userControllerMock = [OCMockObject niceMockForClass:[self.userController class]]; [[userModelMock expect] saveInBackgroundWithBlock:[OCMArg any]]; [[userControllerMock stub] saveUser:userModelMock withBlock:[OCMArg any]]; [userModelMock verify]; }

如何在Xcode 6上testing应用程序扩展

有谁知道如何执行应用程序扩展目标的unit testing,特别是键盘扩展目标? 我试过了什么(在unit testing目标中): 在“常规”水龙头中,将其目标设置为扩展目标而不是容器应用程序。 将“Bu​​ndle Loader”设置为扩展目标二进制文件的path,该文件看起来像$(BUILT_PRODUCTS_DIR)/com.mycompany.keyboard.appex/com.mycompany.keyboard 将“testing主机”设置为$(BUNDLE_LOADER) 。 在“构build阶段”点击,将“目标依赖项”设置为容器应用程序和扩展。 完成这些事情之后,我可以成功构build它,但是总会得到“testing失败”(Test Failed Test target SogouInputTests encountered an error (Test session exited(1). without checking in. If you believe this error represents a bug, please attach the log file at /tmp/TestStatus-UXfvxw.log) 。 我正在使用Xcode 6 beta 3。

unit testing从一个类别的私人方法?

我有一个类包含一个私人帮手方法的NSString类。 如果我可以在我的unit testing中使用这个方法,这将是方便的。 不过,我很难揭露它。 当我在NSString上创build一个类扩展并在这里声明方法时,这个方法在unit testing中是不可见的。 如果我在一个单独的头文件中创build类扩展,或者作为unit testing.m文件的一部分,则无关紧要。 看起来我在这里错过了一些东西。 任何帮助家伙?

我怎样才能让Xcode 5在Jenkins slave上运行iOSunit testing?

我们一直使用Jenkins和Xcode插件来运行iOS应用程序的持续集成,包括自动执行和unit testing报告。 这在Linux机器和运行Xcode 4.6.3的Mac从机上使用Jenkins很有效。 现在我们正在考虑更新Xcode 5的设置,以支持目标iOS 7,并遇到以下问题。 首先,unit testing根本不会运行,因为我们使用了Xcode 4中不再支持的RunUnitTests脚本,Xcode 5不再支持这个脚本。我按照Xcode的build议,通过使用单元设置适当的scheme来解决这个问题testing目标。 然后,我使用定制的xcodebuild参数设置为test -destination platform=${DESTINATION_PLATFORM},name=${DESTINATION_NAME},OS=${DESTINATION_OS}来configurationJenkins作业的Xcode步骤,以运行unit testing。 如果我运行xcodebuild命令行,Jenkins的Xcode插件在我自己的机器上运行在terminal上,unit testing运行,但是当Jenkins作业运行时,它在尝试运行unit testing时失败或挂起。 我怀疑这是因为在Xcode 5和testingbuildaction而不是RunUnitTests脚本的情况下,unit testing现在在需要交互式会话的iOS Simulator中运行,而Jenkins从属进程正在通过Jenkins主(Linux)的SSH运行。 如果我使用Jenkins用于SSH的帐户login到slave机器,我可以看到iOS Simulator在unit testing应该运行时启动,但是testing似乎不运行,而且作业挂起。 如果我没有login到奴隶机器,jenkins作业无法运行unit testing。 有没有办法让iOSunit testing通过SSH运行在Jenkins从站上,如果没有,如何在Xcode 5构build项目时如何保持自动执行unit testing的任何build议?

如何运行和debuggingiPhone应用程序的unit testing

注:unit testing现在更容易设置。 本教程与Xcode版本5及以上版本无关。 我花了相当一段时间,但终于成功地为我的项目工作。 为了创build“逻辑”testing,我遵循了关于创build逻辑testing的Apple指导原则 。 一旦你明白逻辑testing是在构build过程中运行的,这个工作正常。 为了能够debugging这些testing,需要创build一个自定义可执行文件来调用这些testing。 Sean Miceli在Grokking Cocoa博客上的文章提供了所有这些信息。 然而,之后并没有立竿见影的成功,需要一些调整。 我将详细介绍Sean教程中的主要步骤,提供一些“傻瓜”轮廓,这些轮廓花了我一些时间来弄清楚: 设置一个包含unit testing但不运行它们的目标 安装可执行文件以运行testing 设置最简单的环境variables,以便可以find你的unit testing 以下是使用XCode 3.2.5进行的 注意XCode 4 在XCode 4中,可以直接debugging你的unit testing。 只需编写testing,将其作为testing之一添加到目标中,并在其中设置断点。 就这样。 更多将会来。 步骤1 – 设置目标 复制您的项目目标下的unit testing目标。 这也将创buildunit testing产品(.octest文件)的副本。 在下图中,“LogicTest”是原始目标。 将unit testing目标和unit testing产品(.octest文件)重命名为相同的名称。 在下图中“LogicTestsDebug”是重复的目标。 删除新目标的RunScript阶段 两者的名称可以是任何东西,但我会避免空格。 第2步 – 设置otest 这里最重要的一点是要得到正确的,也就是说你的iOS版本,而不是默认的Mac版本。 这在肖恩的教程中有很好的描述。 以下是一些帮助我设置正确的更多细节: 转到项目 – >新的自定义可执行文件。 这将popup一个窗口,提示您input一个可执行文件名称和一个可执行文件path。 input任何你想要的名字。 复制粘贴path到您的iOS otest可执行文件。 […]

XCTest为testing目标Xcode 5构build错误:

我已经为unit testingbuild立了一个XCode 5 iOS 7项目。 当然,进行unit testing的时间长了很多,所以我试图坚信这是值得的。 在这个错误上挣扎数小时: ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode5-DP5.app/Contents/Developer/Library/Frameworks/XCTest.framework/XCTest' for architecture i386 任何想法如何解决?

从命令行运行iOS应用程序的单个XCTest(UI,Unit)testing用例

是否可以从命令行界面从iOS应用testing目标(而不是所有testing用例)运行单个testing用例或单个testing套件? 您可以使用xcodebuild从命令行运行testing,开箱即用。 当你这样做时,你运行你select的testing目标中包含的所有testing用例。 您也可以使用Fastlane进行扫描 ,尽pipe我相信您只能运行您select的构buildscheme的所有testing(如上所述),所以与xcodebuild没有区别。 您可以使用Facebook上的xctool运行特定的testing,但不使用xcodebuild,并且仅限于在模拟器上运行,而不是实际的iOStesting设备。 我发现直接运行xctest命令行实用程序的引用,但它似乎是一个未公开的function和目标DerivedData。 UItesting的这一事实很复杂, 它们的* xctest文件在一个单独的XCTRunner包中 。

在运行Swift的unit testing时找不到“MyProject-Swift.h”文件

我正在尝试为我的项目设置unit testing。 这是一个现有的Objective-C应用程序,我最近添加了一个Swift类。 我已经安装了“MyProject-Swift.h”和Swift Bridging文件(包括“MyProject”和“MyProjectTest”),并且能够使用Objective-C和Swift代码很好地构build和运行应用程序。 不过,现在我想在新的Swift类上运行一些unit testing。 我设置我的testing文件,它看起来像下面这样: MySwiftClassTests.swift: import UIKit import XCTest import MyProject class MySwiftClassTests: XCTestCase { override func setUp() { super.setUp() // Put setup code here. This method is called before the invocation of each test method in the class. } override func tearDown() { // Put teardown code here. This method […]

添加Swift文件来testing目标没有修复unit testing

我看了很多博客,并尝试了很多东西,让我的Swiftunit testing在Xcode 6.0.1(或6.1)中工作。 我试图访问我的应用程序的目标中的类,所以我写了这一行: var vc: LoginViewController! 当然,我得到“使用未声明的types”LoginViewController'“错误。 然后我尝试将LoginViewController添加到我的testing目标,但是随后在我的项目中的其他类上出现“使用未parsing的标识符”错误。 所以我尝试将这些类添加到我的testing目标中,但是我最终得到了一个看似无穷无尽的错误来源,如下面的屏幕截图: 宣布我所有的类都是公开的,导致其他的错误,似乎是不好的做法。 是否有任何依赖许多框架和类的Swift项目中包含unit testing? 我只是想从几乎完全像本文中的代码开始。

在Xcodeunit testing中使用@testable时,“没有这样的模块”

我最近更新到Xcode 7testing版5.我试图添加一个unit testing到一个较早的项目,但我收到错误消息“没有这样的模块[myModuleName]” @testable import myModuleName行。 我试过了 使用Option Clean Build Folder清理项目 在“构build选项”中检查“启用可testing性”(debugging)设置为“是” 删除testing目标,然后重新添加iOSunit testing包 这一切都没有为这个项目工作(但我已经得到testing,在另一个项目工作)。 有没有其他人有这个问题,并解决了它?