草庐IT

ios - 在 iOS 中使用 OCMock 测试 void 方法

我正在尝试为Objective-C类中返回void的方法编写测试用例。方法mobileTest只是创建了另一个类AnotherClass的对象并调用方法makeNoise.如何测试?我尝试使用OCMock来创建测试。创建了一个AnotherClass的模拟对象,并称为mobileTest方法。显然,OCMVerify([mockObjectmakeNoise])不会工作,因为我没有在代码的任何地方设置这个对象。那么,如何在这种情况下进行测试?@interfaceHello@end@implementationHelloWorldClass()-(void)mobileTest{Anot

ios - 使用 OCMock 将代码块作为参数的 stub 方法

有没有一种stub方法,将block作为参数?例如方法:-(void)reverseGeocodeLocation:(CLLocation*)locationcompletionHandler:(CLGeocodeCompletionHandler)completionHandler; 最佳答案 是的。最简单的方法是接受任何东西:idmockGeocoder=[OCMockObjectmockForClass:[CLGeocoderclass]];[[mockGeocoderstub]reverseGeocodeLocation:[

ios - 延迟的 OCMock 验证/处理单元测试中的超时

我正在使用OCMock测试真实的网络服务调用。现在我正在做一些事情,比如:-(void)testWebservice{idmydelegatemock=[OCMockObjectmockForProtocol:@protocol(MySUTDelegate)];[[mydelegatemockexpect]someMethod:[OCMArgany]];[SUTsutWithDelegate:mydelegatemock];//weneedtowaitforrealresult[[NSRunLoopcurrentRunLoop]runUntilDate:[NSDatedateWithT

ios - OcMock vs OcMockito - 优缺点是什么

对于iOStdd测试/模拟,您会推荐哪个框架?我听说OcMock存在时间更长,而且更轻量级。任何人都可以提供一些优缺点的例子或演示每个的一些优点。我只是在寻找一个快速的标准模拟框架,但我想知道每个框架的所有缺点/优点。 最佳答案 http://www.objc.io/issue-15/mocking-stubbing.html上已经有了某种比较基本上可以归结为:OCMockhasalotmorefunctionalitythanOCMockito,which,dependingonyourpersonalpreference,cou

ios - OCMock - 验证方法调用的顺序。还有别的办法吗?

当我想验证在一个方法中模拟对象是否以特定顺序接收某些消息时,我会执行如下操作://sutisaninstanceoftheclassIamtestingandmyMockisamockobjectinjectedinsut.//IwanttotestthatmyMocksendsmessageAandthenmessageB,inthatparticularorder.[[[myMockexpect]andDo:^(NSInvocation*invocation){[[myMockexpect]messageB];}]messageA];[sutmethodToTest];[myMoc

ios - 如何从 OCMock 开始并检查方法是否被调用

我正在尝试处理OCMock。我创建了简单的类MyClass。@interfaceMyClass:NSObject-(NSString*)simpleMethod;@end@implementationMyClass-(NSString*)simpleMethod{[selfmethod];return@"simple";}-(void)method{NSLog(@"ABC");}@end我想检查的是在调用simpleMethod时是否调用了方法method。现在我有以下代码,但它不起作用:-(void)testMethodInvoked{idmock=[OCMockObjectmock

objective-c - OCMock:模拟协议(protocol),排除可选方法

我正在使用OCMock在我的iOS应用程序测试中创建模拟,我想创建不实现所有可选方法的协议(protocol)模拟。如果不清楚我的意思...这里有一些代码://Protocoldefinition@protocolMyAwesomeProtocol-(void)doThatRequiredThing;@optional-(void)doThatOptionalThing;@end...//Inatestidmock=[OCMockObjectmockObjectForProtocol:@protocol(MyAwesomeProtocol)];//ThisshouldreturnYES

iOS OCMock 部分 vs 类模拟

我正在学习用于iOS测试的OCMock。“类模拟”和“部分模拟”之间有什么区别,什么时候应该使用它们?http://ocmock.org/features/ 最佳答案 类模拟创建的对象是类实例的纯模拟。部分模拟获取一个类的实例并允许您对它的任何方法进行stub。假设我有这些类:@interfaceFoo:NSObject-(void)doX;@end@implementation-(void)doX{NSLog(@"X");}@end@interfaceBar:NSObject-(void)doA:(Foo*)foo;-(void)

objective-c - OCMock,为什么我不能期待协议(protocol)上的方法?

考虑这段有效的代码(loginWithEmail方法得到预期,嗯,预期):_authenticationService=[[OCMockObjectmockForClass:[AuthenticationServiceclass]]retain];[[_authenticationServiceexpect]loginWithEmail:[OCMArgany]andPassword:[OCMArgany]];对比这段代码:_authenticationService=[[OCMockObjectmockForProtocol:@protocol(AuthenticationServic

ios - XCode - iOS - <OCMock/OCMock.h> 文件未找到

我有一个iOS应用程序,我正在尝试将OCMock添加到其中,以便更好地对其进行单元测试。我已经按照ocmock.org上的说明以及我在其他地方找到的说明进行操作,但仍然无法编译我的测试代码。这是我做的将源代码添加到我的项目目录在我的项目中创建组来模仿我的文件系统我选择了添加到我的测试目标的选项,因此适当添加了框架以及库搜索路径然后我手动将标题添加到标题搜索路径并添加了-ObjC链接器标志然后当我去导入头文件时,我得到找不到文件的错误知道我在这里遗漏了什么吗??? 最佳答案 您有搜索路径test/libraries/OCMock.然后