我的MessageSerializer类有一个方法,其签名如下所示:-(Message*)deserialize:(constvoid*)bufferlength:(NSUInteger)length;我可以使用OCMockito来stub吗?其中serializer是我的模拟序列化器,编译器在我的测试方法中批准了以下所有这些形式:[given([serializerdeserialize:[databytes]length:[datalength]])willReturn:message];[given([serializerdeserialize:(__bridgeconstvoi
我的应用程序中有以下方法,我需要为其编写单元测试用例。谁能建议我如何测试是否调用了成功block或错误block。-(IBAction)loginButtonTapped:(id)sender{void(^SuccessBlock)(id,NSDictionary*)=^(idresponse,NSDictionary*headers){[selfsomeMethod];};void(^ErrorBlock)(id,NSDictionary*,id)=^(NSError*error,NSDictionary*headers,idresponse){//somecode};[Servic
我使用OCMock对类lvl方法进行stub,效果很好。现在我需要使用OCMockito实现相同的行为。在OCMock中我有以下内容:_mock=mockClass([MySingletonclass]);OCMStub([_mocksharedSingleton]).andReturn(_mock);在我的例子中,我必须stubsharedSingleton方法,因为它在测试期间在多个地方使用。 最佳答案 OCMock直接stub单例的能力是通过方法调配完成的。对于OCMockito,我有意避免这种方法。我建议您使用某种形式的De
我有一个ViewController,它在viewDidLoad期间将自己添加为UIApplicationDidBecomeActiveNotification的观察者。我想验证是否发生了这种情况,但我不希望测试关心ViewController为事件注册的特定选择器。目前我的测试看起来像这样:-(void)testRegistersForApplicationDidBecomeActiveEvent{//givenMyViewController*sut=[MyViewControllernew];NSNotificationCenter*mockNotificationCenter=
我可以对类方法进行stub/验证,但我在定义宏时遇到困难。我正在尝试测试我的方法之一调用DDLogInfo。它在CocoaLumberjack源代码中是这样定义的#defineDDLogInfo(frmt,...)LOG_MAYBE(LOG_ASYNC_ENABLED,LOG_LEVEL_DEF,DDLogFlagInfo,0,nil,__PRETTY_FUNCTION__,frmt,##__VA_ARGS__)谢谢! 最佳答案 所有标准的DDLog宏调用+[DDLoglog:level:flag:context:file:func
OCMockitodocumentationclaimsit'spossibletomockclassobjects,但如果我能弄清楚怎么做,我该死。以下测试因Expected"Purple"butwas""失败:-(void)testClassMethodMocking{ClassstringClassMock=mockClass([NSStringclass]);[given([stringClassMockstring])willReturn:@"Purple"];assertThat([NSStringstring],equalTo(@"Purple"));}如果回答上面链接的
我在ClassA中有这两个方法-(IBAction)onSubmit;-(void)validateName:(NSString*)name;@实现-(IBAction)onSubmit{[selfvalidateName:self.textfield.text];}-(void)validateName:(NSString*)name{//dosomething}我的测试如下所示://givenClassA*classA=mock([ClassAclass]);classA.textfield.text=@"Foo";//when[classAonSubmit];[verify(cl
我想测试我的init*方法是否使用OCMockito调用其主体中的其他方法。这可能吗,如果,我该怎么做?比方说,我想检查是否调用了[selfmyMethod]。我一直在尝试以一种如此天真的方式来做,但正如你所想象的那样,没有成功:it(@"shouldtriggermyMethod",^{DetailsView*mockDetailsView=mock([DetailsViewclass]);[mockDetailsViewinitWithFrame:CGRectZero];[verify(mockDetailsView)myMethod];}); 最佳答案
对于iOStdd测试/模拟,您会推荐哪个框架?我听说OcMock存在时间更长,而且更轻量级。任何人都可以提供一些优缺点的例子或演示每个的一些优点。我只是在寻找一个快速的标准模拟框架,但我想知道每个框架的所有缺点/优点。 最佳答案 http://www.objc.io/issue-15/mocking-stubbing.html上已经有了某种比较基本上可以归结为:OCMockhasalotmorefunctionalitythanOCMockito,which,dependingonyourpersonalpreference,cou
我正在使用OCMockito,我想在我的ViewController中测试一个使用NetworkFetcher对象和block的方法:-(void)reloadTableViewContents{[self.networkFetcherfetchInfo:^(NSArray*result,BOOLsuccess){if(success){self.model=result;[self.tableViewreloadData];}}];}特别是,我想模拟fetchInfo:以便它返回一个虚拟的result数组而不访问网络,并验证reloadData方法在UITableView上被调用,模