iOS如何测试调用[[UIApplication sharedApplication] openUrl:someUrl]的方法

Fra*_*aro 5 tdd objective-c ios

我想为下面的方法创建一个测试,我想检查忘记密码是否正确.我是TDD的新手,我想知道你们是否认为这是必要的,我怎样才能实施测试.

- (IBAction)forgotPasswordButtonClicked:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:kForgetPasswordURL]];
Run Code Online (Sandbox Code Playgroud)

}

非常感谢

Mic*_*ers 8

对于OCMock 3,请尝试以下操作:

id mockApplication = OCMClassMock([UIApplication class]);
OCMStub([mockApplication sharedApplication]).andReturn(mockApplication);

OCMVerify([mockApplication openURL:[OCMArg any]]);
Run Code Online (Sandbox Code Playgroud)

这篇文章帮助了我.


Fra*_*aro 2

我使用静态方法删除了新类,为了解决我的问题,我使用了 Specta 框架中的部分模拟: id mockApplication = [OCMockObject partialMockForObject:[UIApplication sharedApplication]];

我想这是一个更好的解决方案。(我之前不知道部分模拟)