Tag: unit testing

存根初始化]不工作,但接受的答案说,它应该工作

我的testingfunction非常简单: @implementation MyHandler … -(void) processData { DataService *service = [[DataService alloc] init]; NSDictionary *data = [service getData]; [self handleData:data]; } @end 我使用OCMock 3来进行unit testing。 我需要存根 [[DataService alloc] init]返回一个模拟实例 ,我试图从这个问题 (这是一个接受的答案)的答案存根[[SomeClazz alloc] init] : // Stub 'alloc init' to return mocked DataService instance, // exactly the same way as the accepted answer told id DataServiceMock […]

逻辑unit testing崩溃

我正在按照这个关于逻辑unit testing的指南: https : //developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/UnitTesting/02-Setting_Up_Unit_Tests_in_a_Project/setting_up.html 我已经在指令中添加了testing到我现有的项目,但是当我尝试在模拟器中运行它们时,出现此错误: 堆栈跟踪: 此外,我试图创build一个全新的项目和重复过程,但问题依然存在。 应用程序unit testing按预期运行。

何时使用unit testing?

我明白如何实现unit testing,我只是在努力弄清楚什么时候使用它们。 假设我有一个基本的提醒应用程序。 用户可以添加/编辑/删除提醒,并在桌面视图中查看。 我想要设置unit testing的哪些部分的应用程序?

iOS Swiftunit testing导致无法parsing的标识符

快速testing中的简单function: func testExample() { var tagname = "someClass()" var logger = Device("", "") //unresolved identifier XCTAssert(true, "Pass") } 即使我导入我的模块与“导入”,我仍然不能使用我的模块的类。 另外,尽pipe我可能在项目中搞砸了一些东西,但是我的示例项目中没有一个会让我使用模块类。 似乎应该工作,但可能已经打破了testing版2。 编辑:修复它IDE没有拿起参数名称的检查。 似乎Xcode仍然是一个有点iffy

如何testing使用UIKit的iOS库

我想为使用UIKit的iOS应用程序创build一个库。 此外,我想创build这个库的unit testing。 不幸的是我的testing因为UIKit( [UIFont systemFontOfSize:12.0]而[UIFont systemFontOfSize:12.0] 。 根据苹果的unit testing指南 ,有两种types的testing用例:逻辑testing和应用testing。 应用程序testing似乎是涉及UIKit相关的testing正确的types,但我没有发现如何设置图书馆的应用程序testing。 有没有人有同样的问题,并能解决它? 非常感谢!

用simctl运行XCTest包

我有一个XCTest包,我可以通过使用simctl在模拟器上运行xcode。 我正在使用带有以下环境variables的iPhone 6 iOS 9.1模拟器: export SIMCTL_CHILD_TestBundleLocation="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/Tests.xctest" export SIMCTL_CHILD_XCInjectBundle="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/Tests.xctest" export SIMCTL_CHILD_XCInjectBundleInto="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/ios_app.app/ios_app" export SIMCTL_CHILD_XCTestConfigurationFilePath="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator/Tests.xctest/Tests-7025D700-AA6C-4343-9C7A-92F9CC3A1C42.xctestconfiguration" export SIMCTL_CHILD_DYLD_LIBRARY_PATH="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" export SIMCTL_CHILD_DYLD_FRAMEWORK_PATH="/Users/User/ios_app/DerivedData/primus/Build/Products/Debug-iphonesimulator:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks" 该应用程序已经安装在模拟器上,模拟器正在运行,我运行: xcrun simctl launch booted uk.co.company.ios.app -NSTreatUnknownArgumentsAsOpen NO -ApplePersistenceIgnoreState YES -XCTest All 应用程序启动,从模拟器日志中我可以看到,XCTest包加载,但testing不运行。 我注销了似乎停止的地方,并有一个私人方法_checkForTestManager ,更具体地说_checkManagerForDaemonStateAndConnectIfAvailable 。 从我可以告诉XCTest试图连接到testmanagerd但失败。 所以我试着在模拟器上用kickstarting testmanagerd : xcrun simctl spawn booted launchctl kickstart system/com.apple.testmanagerd 但是这似乎对运行的testing没有影响,但是我在模拟器日志中看到了一些额外的输出: testmanagerd[41610]: Received new test session connection (-[XCTestManager listener:shouldAcceptNewConnection:]) testmanagerd[41610]: Initial […]

如何从testing导航器中删除Xcode Swift Test Class?

Xcode Test导航器显示testing用例类的列表。 我想删除一个testing用例类,因为它不再需要。 我已经尝试了许多典型的方法,例如按删除,或者查找“ – ”图标或“删除”菜单项,或者在Apple Xcode文档中search帮助。 我find了这个解决方法: 在项目导航器中,从项目中删除文件并删除文件。 退出Xcode并重新启动它。 testing导航器似乎失去了testing类和testing用例的轨迹,并显示零项。 运行testing。 testing导航器似乎重build了testing类和testing用例的列表。 如果还是不行,试试这些… 删除Xcode派生数据: Xcode菜单 – >首选项 – >“位置”图标 – >“派生数据”部分。 点击小灰圈的箭头; 这将打开Finder并显示DerviedData文件夹。 删除整个文件夹。 重build: 产品菜单 – >清洁。 产品菜单 – >生成。 是否有一个简单的方法来完成删除testing类的目标? 理想情况下,无需重新启动Xcode,或重build项目等? 相关types的问题: 如何从testing用例视图中删除Xcodetesting用例? 我使用Xcode 6.3和Swift 1.2,如果这有助于知道。 编辑:在评论中,@CouchDeveloper指向官方的Xcode 6.3发行说明 ,其中描述了一个已知的错误#20373533: 在这个版本的Xcode中不会自动发现Swifttesting。 源代码编辑器侧边栏中的testing注释将不会出现,并且testing导航器和计划表testing操作中的testing表将为空。 … 在这个问题上的赏金是任何解决scheme或更好的解决方法。 任何解决方法都可以,比如使用Xcode GUI,或者使用命令行xcodebuild,或者任何可以压缩项目文件的shell脚本。

Xcode 5:unit testing没有运行

我创build了一些testing用例,他们都通过了…这是因为他们没有运行。 从Xcode,我得到: testing套件“所有testing”开始于… testing套件“所有testing”在…完成 执行0次testing,在0.00秒内发生0次失败(意外0次) 项目(和unit testing类)成功构build。 所有我的testing类都selectMyApp_appTests作为目标成员。 生产类select了MyApp_app&MyApp_appTests目标。 我validation了MyApp_appTests目标构build设置(Bundle Loader&Test Host)。 Bundle Loader (Debug): $(BUILT_PRODUCTS_DIR)/MyApp.app/MyApp Test Host (Debug): $(BUNDLE_LOADER) 我已经导入SenTestingKit.framework(通过目标构build阶段“链接二进制库”)。 我的所有testing都以-(void)testThat… 我也检查了几个stackoverflow.com问题: stackoverflow.com/questions/8632254/xcode-4-2-cant-run-unit-test stackoverflow.com/questions/3608484/ocunit-tests-not-running-not-being-found stackoverflow.com/questions/16672616/的OCUnit试验的情况下,不运行的 和这个职位: twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/ 我不知道在哪里寻找…任何帮助,非常感谢!

XCTest和CoreData

我想通过使用XCTest类和方法在Xcode 5中unit testing我的模型。 因为我的模型类inheritance了managedObject ,所以我不能只实例化(alloc / init)它们并调用getter和setter或者我需要testing的方法。 我需要通过使用NSEntityDescription创build它们并使用managedObjectContext 。 这就是我得到麻烦的一点。 我不知道在哪里以及如何为unit testing创​​buildmanagedObjectContext目的。 如果有人有一些build议或代码的例子,这将是非常有益的。 谢谢。

Swift 2.0:使用Set时无法将MyApp.MyCustomClass值转换为MyAppTests.MyCustomClass

这是一个错误: 无法将typesMyApp.Member (0x1674daf8)的值转换为MyAppTests.Member (0x4c07248)。 你可以很容易地重现一个错误: 安装两个NSManagedObject @objc(Member) class Member: NSManagedObject { @NSManaged var family: Family } @objc(Family) class Family: NSManagedObject { @NSManaged var members: Set<Member> } 在.xcdatamodel也可以.xcdatamodel : 然后在你的TestFile中 : func testA() { let family = Family.MR_createEntityInContext(context) let father = Member.MR_createEntityInContext(context) father.family = family let firstMember = family.members.first XCTAssertEqual(firstMember!, father) }