下面是被测方法:-(void)loginWithUser:(NSString*)userNameandPass:(NSString*)pass{NSDictionary*userPassD=@{@"user":userName,@"pass":pass};[_loginCntrlloginWithUserPass:userPassDwithSuccess:^(NSString*authToken){//saveauthTokentocredentialstore}failure:^(NSString*errorMessage){//alertuserpasswaswrong}];}我想
我是OCMock的新用户,所以我可能只是遗漏了一些简单的东西。此代码无法编译:idmockSession=[OCMockObjectmockForClass:[AVCaptureSessionclass]];[[mockSessionexpect]addOutput:[OCMArganyPointer]];错误是Multiplemethodsnamed'addOutput:'foundwithmismatchedresult,parametertypeorattributesAVCaptureSession的addOutput方法签名如下-(void)addOutput:(AVCapt
我有一个在要测试的类的.m文件中声明的私有(private)属性,我们称它为ClassUnderTest。ClassUnderTest实例化ClassToBeMocked的实例。我如何使用OCMock模拟出ClassToBeMocked的实例并将其分配给ClassUnderTest? 最佳答案 在您的测试类中重新声明该属性。您可以对私有(private)方法执行相同的操作。在ClassUnderTestTest.m中:@interfaceClassUnderTest()@property(retain)ClassToBeMocked
假设一个方法签名如下:-(void)theMethod:(void(^)(BOOLcompleted))completionBlock;我想模拟这个方法签名以确保调用该方法,并且只调用完成block。我从其他帖子看到thisone我可以模拟方法调用并接受任何block,但不能运行该block。我也知道有一个我可以使用的andDo方法,但我不知道如何传入一个block并运行它。有什么想法吗?谢谢。 最佳答案 您可以像这样使用[[mockstub]andDo:]来传递另一个block,该block在您的模拟方法被调用时被调用:void(
我经常在我的iPhoneObjective-C单元测试中发现我想要stub一个类方法,例如NSUrlConnection的+sendSynchronousRequest:returningResponse:error:方法。简化示例:-(void)testClassMock{idmock=[OCMockObjectmockForClass:[NSURLConnectionclass]];[[[mockstub]andReturn:nil]sendSynchronousRequest:nilreturningResponse:nilerror:nil];}运行时,我得到:TestCase
我经常在我的iPhoneObjective-C单元测试中发现我想要stub一个类方法,例如NSUrlConnection的+sendSynchronousRequest:returningResponse:error:方法。简化示例:-(void)testClassMock{idmock=[OCMockObjectmockForClass:[NSURLConnectionclass]];[[[mockstub]andReturn:nil]sendSynchronousRequest:nilreturningResponse:nilerror:nil];}运行时,我得到:TestCase