iOS如何测试调用[[UIApplication sharedApplication]openUrl:someUrl]的方法
我想为下面的方法创建一个测试,我想检查忘记的密码是否正确。我是TDD的新手,我想知道你们是否认为这是必要的,我如何实施测试iOS如何测试调用[[UIApplication sharedApplication]openUrl:someUrl]的方法,ios,objective-c,tdd,Ios,Objective C,Tdd,我想为下面的方法创建一个测试,我想检查忘记的密码是否正确。我是TDD的新手,我想知道你们是否认为这是必要的,我如何实施测试 - (IBAction)forgotPasswordButtonClicked:(id)sender { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:kForgetPasswordURL]]; } 非常感谢您可以创建XCTest来测试以下方法 但是,您必须为您的项目创建一个测试目标,如果默
- (IBAction)forgotPasswordButtonClicked:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:kForgetPasswordURL]];
}
非常感谢您可以创建XCTest来测试以下方法 但是,您必须为您的项目创建一个测试目标,如果默认情况下没有创建XCTestCase,则必须在测试目标上创建一个XCTestCase,并创建一个以名称testForgotPassWordButtonClicked开头的方法
要运行测试目标,请为测试目标创建一个架构并对其运行测试。我可以通过创建一个处理[[UIApplication sharedApplication]openURL:]的新类来做到这一点,我是通过在这个新类上添加一个静态方法来做到的。我仍然不确定这是否是一个好方法,但解决了我的问题。我用静态方法删除了新类,为了解决我的问题,我使用了Specta框架中的部分模拟:
id mockApplication=[OCMockObject partialMockForObject:[UIApplication-sharedApplication]]代码>
我想这是一个更好的解决方案。(我以前不知道部分模拟)对于OCMock 3,请尝试以下操作:
id mockApplication = OCMClassMock([UIApplication class]);
OCMStub([mockApplication sharedApplication]).andReturn(mockApplication);
OCMVerify([mockApplication openURL:[OCMArg any]]);
这篇文章帮助了我。我已经在这个项目上做TDD了,我正在使用Specta框架。但是我还不知道具体如何做这个测试。谢谢这个答案太高了,与问题的具体内容无关。使用OCMock,我在尝试创建这个模拟时得到了一个“EXC_BAD_ACCESS”,正如你上面所说的。我试图在静态库中运行此测试。你认为这就是导致它的原因吗?自从更新到OCMock 3(它在2中起作用)以来,经历了与AnthonyM相同的事情。