我是新来的OCMock.我使用dispatch_once()创建了一个单例类MyManager:@implementationMyManager+(id)sharedInstance{staticMyManager*sharedMyManager=nil;staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{sharedMyManager=[[selfalloc]init];});returnsharedMyManager;}我在School类中有一个使用上述单例的方法:@implementationSchool...-(v
我正在尝试为使用Parse后端框架的iOS应用程序编写单元测试,经过大量实验后似乎无法编写成功的单元测试。我找到了一些关于测试异步代码(TestingasynchronouscallinunittestiniOS)和测试网络调用的帖子,但我还没有找到一种方法来测试使用异步回调对Parse后端的调用。举个例子,谁能建议我如何测试下面这行代码:[PFUsersaveUser:userModelMockwithBlock:^(BOOLsuccess,NSError*error){}];我正在使用OCMock和XCTest框架。如有任何帮助,我们将不胜感激。*编辑*这是我到目前为止所拥有的,但
我正在玩弄使用CoreData来管理对象图,主要是为了依赖注入(inject)(NSManagedObjects的一个子集确实需要保留,但这不是我的问题的重点)。运行单元测试时,我想接管NSManagedObjects的创建,用模拟替换它们。我现在确实有一个候选方法可以做到这一点,即使用运行时的method_exchangeImplementations来交换[NSEntityDescriptioninsertNewObjectForEntityForName:inManagedObjectContext:]与我自己的实现(即返回模拟)。这适用于我做过的一个小测试。我有两个问题:有没有
我正在尝试对使用NSFileManager检查文件是否存在并删除文件的方法进行单元测试。我不确定我是否正确设置了模拟对象。我得到“方法未被调用”,即使我确定它是。我是否在设置过程中遗漏了什么?我按如下方式设置模拟对象:-(void)testdeleteFileWithPath{idfileManagerMock=OCMClassMock([NSFileManagerclass]);OCMStub([NSFileManagerdefaultManager]).andReturn(fileManagerMock);NSString*filePath=@"testPDF.pdf";NSURL
我正在尝试使用以下说明将OCMock添加到我当前的项目中ocmock.org.将库和header添加到项目中。确保libOCMock.a已添加到我的测试目标。在HeaderSearchPaths中添加了头文件的搜索路径在BuildSettings下为测试目标。添加了标志-force_load,PATH/TO/libOCMock.a和-ObjC至OtherLinkerFlags(也对测试目标)。最后,我在测试类中导入header,如下所示:#import发生的第一件事是Xcode提示找不到header。如果我继续尝试构建测试目标,我会得到一个错误:OCMock/OCMock.h未找到。当
我正在尝试在iOS项目中设置一个简单的OCMock单元测试,以熟悉框架。我有一个模拟的DataLoader类,即使我自己调用该方法,我的期望也失败了:-(void)testSimpleMocking{//Mocktheclassidmock=[OCMockObjectniceMockForClass:[DataLoaderclass]];//Overridethe'dispatchLoadToAppDelegate:'tobeano-op[[[mockstub]andReturn:nil]dispatchLoadToAppDelegate:[OCMArgany]];//Expectth
有谁知道如何捕获发送到OCMock对象的参数?idmock=[OCMockObjectmockForClass:someClass]NSObject*captureThisArgument;[[mockexpect]foo:][mockfoo:someThing]GHAssertEquals[captured,someThing,nil];我如何着手验证foo的参数?我也很乐意在模拟定义中的一个block内完成它,但如果我可以取出对象以便我稍后可以断言它的功能,那就太棒了。OCMock可以吗? 最佳答案 如果你想验证你的参数,也许你
我正在检查一个应用程序并添加单元测试。该应用程序使用Storyboard编写,支持iOS6.1及更高版本。我已经能够毫无问题地测试所有常用的返回方法。但是,我目前对要执行的某个测试感到困惑:本质上我有一个方法,我们称之为doLogin:-(IBAction)doLogin:(UIButton*)sender{//Somelogichereif(//certaincriteriatomeet){variable=x;//importantvariablesethere[selfperformSegueWithIdentifier:@"memorableWord"sender:sender
一、OCMock简介1.1、Mock介绍作为一个动词,mock是模拟、模仿的意思;作为一个名词,mock是能够模仿真实对象行为的模拟对象。在软件测试中,mock所模拟的对象是什么呢?它一定不是我们所测试的对象,而是SUT(SoftwareUnderTest:测试的对象)的依赖(dependency)。换句话说,mock的作用是模拟SUT依赖对象的行为。文字不好理解,我们画个图,如下图所示,被测试对象是A,A依赖的是B,B依赖的是C。而我们要mock的是B的行为。图中A就是SUT。mock依赖关系.png1.2、OCMock介绍OCMock是一个用于为iOS或MacOSX项目配置Mock测试的开
我只是在练习OCMock,我这里面临的问题是我有一个名为foo的方法,它返回CGRect,这个方法是从另一个方法callFoo调用的。-(CGRect)foo{returnCGRectMake(10,10,10,10);}-(void)callFoo{CGRectrect=[selffoo];NSLog(@"%@",NSStringFromCGRect(rect));}我对callFoo方法的单元测试如下。-(void)test__callFoo__invokesWithMockingFoo{ViewController*sut=[[ViewControlleralloc]init];