Tag: ocunit

isMemberOfClass无法正常工作与ocunit

可能重复: 'isMemberOfClass'在自定义init时返回'NO' 我在“isMemberOfClass”方法上遇到了一些麻烦。 我有一个类,生成并返回对象(“ MyObject ”) // ObjectFactory.h … -(MyObject*)generateMyObject; … // ObjectFactory.m … -(MyObject*)generateMyObject { MyObject *obj = [[MyObject alloc]init]; obj.name = @"Whatever"; // set properties of object return obj; } … 还有一个unittest类,它调用generateMyObject -selector并检查返回对象的类: … ObjectFactory *factory = [[ObjectFactory alloc]init]; MyObject *obj = [factory generateMyObject]; if (![obj isMemeberOfclass:[MyObject class]]) STFail(@"Upps, object of wrong class […]

iPhonetesting:testingIBOutlets

我实际上感到有些尴尬,因为它感觉像你一样基本,但它已经把我困住了好几个小时。 比方说,我有一个UIViewController(称为MyViewController)的实例,它只是一个IBOutlet到一个UITextField,并且当页面加载时,我将它设置为Enabled或不基于BOOL属性。 – (void)viewDidLoad { [super viewDidLoad]; self.surname.enabled = self.allowTextField; } 一切都正确连接,当我运行应用程序,它按预期工作(主 – 我希望如果我不能得到那部分权利,我可能不应该写iPhone应用程序…)。 无论如何,我决定努力工作,为应用程序编写应用程序unit testing,因为这是我想成为一个更坚实的东西。不幸的是,我不能理解为什么以下不起作用… -(void)testFieldEnabled { MyViewController *myController = [[MyViewController alloc] initWithNibName:nil bundle:nil]; myController.allowTextField = YES; [myController viewDidLoad]; STAssertTrue(myController.surname.enabled, @"Why is this not correct?"); } 我一直保持这个例子非常简单,因为我真的不明白为什么这不起作用,并相信这一定是由于我对unit testing的理解失败。 上面的unit testing不应该启动一个MyViewController页面的实例,设置属性,运行该方法并返回true? 目前它一直告诉我姓氏textfield没有启用。 感谢您的帮助和新年快乐!

添加unit testing时的Mach-O链接器错误 – XCode

我正在尝试将OCUnittesting添加到现有项目(在XCode 4.6.3中)。 我按照这里的说明 – http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/然而,我只得到78个马赫 – O错误试图运行testing。 我可以编译主要目标就好了。 有一件事要注意,我还没有修改testing,他们只是标准的模板。 我不知道我做错了什么。 一个错误消息 架构i386的未定义符号:“_AudioComponentFindNext”,引用自libNuanceSpeechAnywhere.a(libSpeechKit.a-i386-master.o)中的l651:libNuanceSpeechAnywhere.a中的l652(libSpeechKit.a-i386-master.o) 这里是一堆错误的屏幕截图。

TDD:unit testingasynchronous调用

球员: 我正在开发一个应用程序,并使用unit testing进行构build。 但是,我现在处于需要testingasynchronous调用的情况。 例如, – (void)testUserInfoBecomesValidWhenUserIsBuiltSuccessfully { if ( ![userBuilder userInfoUpToDate] ) { [userBuilder buildUser]; } STAssertTrue([userBuilder userInfoUpToDate], @"User information is not valid before building the user"); } testing这些东西的一般做法是什么? userInfoUpToDate预计将被asynchronous更新。 谢谢! 威廉

XCode 7:无法将OCUnit转换为XCTest

我将XCode升级到7.0,遇到了编译问题。 XCode要求我将testing目标转换为使用XCTest,然后按照向导屏幕。 我无法find任何testing目标,无法完成转换。 有谁知道如何解决这一问题 ? 谢谢。

在Xcode 5.0中不能用OCMock 2.1+存储类方法

我知道,OCMock版本2.1+ 支持开箱即用的类别方法。 但由于某种原因,它不适合我。 为了确保我将问题隔离开来,我简单地克隆了示例OCMock项目 (清楚地标记为版本2.2.1),并简单地将其添加到testMasterViewControllerDeletesItemsFromTableView中 : id detailViewMock = [OCMockObject mockForClass:[DetailViewController class]]; [[[detailViewMock stub] andReturn:@"hello"] helloWorld]; 在DetailViewController.h我补充说: + (NSString *)helloWorld; 和DetailViewController.m : + (NSString *)helloWorld { return @"hello world"; } 但是我一直在得到这个错误: *** -[NSProxy doesNotRecognize Selector:helloWorld] called! 看到这个问题的演示,请克隆这个回购看看是怎么回事。

是否有可能使用XCode的SenTestingKitunit testing静态库项目?

我已经创build了一个iOSunit testing目标,按照Apple文档中提供的步骤进行逻辑testing。 但是我的构build失败,我得到以下错误: 未定义的符号: “_OBJC_CLASS _ $ _ MyClass”,引用自:LogicTests.o中的objc-class-ref-to-MyClass ld:符号(s)not found collect2:ld返回1退出状态 通常,如果我想在应用程序中使用我的静态库,我会包含library.a文件和头文件(包括MyClass.h文件…)。 如果我的testing用例正在使用MyClass.h,是否还需要额外的东西来在同一个项目中的静态库上运行逻辑testing? Tjhanks

用静态库进行unit testing

我有一个带有用户界面项目(UI)和核心逻辑项目(Core)的XCode工作区。 我想在UI项目中使用OCUnitunit testing,所以我添加了一个新的testing目标,就像通常那样。 我能够运行testing就好了,直到我在主要的UI目标,然后引用核心项目中的类放入导入语句。 我得到的错误是“未find词法或预处理程序问题'xxx.h'文件”。 直接构build主UI对象时,我不会收到此消息。 就好像主要的UI目标在构buildCore时知道的那样,但是当它从testing目标引用时,似乎对于Core一无所知。 我使用“Link Binaries with Libraries”添加了对核心项目的引用。列表中的项目保持为红色。 线索? 也许,但链接列表中的红色参考不会保留构build和使用核心类的UI目标。 我也把主要目标作为testing目标的依赖。

EXC_BAD_ACCESS在访问OCMock的andDo参数时

我正在尝试使用OCMock的stub和Do方法编写一段代码。 在这种情况下,正在testingUIImageView扩展类。 我想检查扩展调用[self setImage:]参数是非零(稍后将使用其他图像比较)。 在使用OCMock的andDo方法时,在块完成后,testing会使用EXC_BAD_ACCESS进行崩溃。 id mockView = [OCMockObject mockForClass:[UIImageView class]]; [[[mockView stub] andDo:^(NSInvocation *invocation) { UIImage *img; [invocation getArgument:&img atIndex:2]; <—- line causing the exception somebodySetImage |= (img != nil); }] setImage:OCMOCK_ANY]; [mockView do_something_that_calls_setImage]; 我现在发现的唯一解决scheme是使用andCall而不是andDo ,但这使testing变得复杂。 我可以用andDo避免崩溃吗? 更新那么,我将尝试在这里给出一个更好的例子:这是testing代码的新部分: – (void)testDownloadingThumbnail { PInfo *_sut = [[PInfo alloc] init]; __block id target = nil; id mock […]

如何在每次构build(运行)xcode 4中的ios应用程序之前自动运行OCUnit逻辑testing?

看来,我有一切设置正确。 当我运行命令(或从产品菜单中select产品testing)testing运行良好。 最佳实践应该是,testing应该尽可能频繁地运行,理想情况是在每个构build期间(在每次运行期间理解)。 如何强制XCode 4做到这一点? 我曾试图: 设置目标依赖项(将主应用程序目标设置为依赖于testing目标) 在主应用程序目标构build设置中启用“构build后testing” 在scheme编辑器中为testing主应用程序打勾也是testing目标 但似乎没有任何工作。 有没有人有成功设置这个?