我想为下面的方法创建测试,我想检查忘记密码是否正确。我是TDD的新手,我想知道你们是否认为这是必要的,我怎样才能实施测试。
- (IBAction)forgotPasswordButtonClicked:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:kForgetPasswordURL]];
}
非常感谢
答案 0 :(得分:8)
对于OCMock 3,请尝试以下操作:
id mockApplication = OCMClassMock([UIApplication class]);
OCMStub([mockApplication sharedApplication]).andReturn(mockApplication);
OCMVerify([mockApplication openURL:[OCMArg any]]);
This文章帮助了我。
答案 1 :(得分:2)
我用静态方法删除了新类并解决了我的问题我使用了Specta框架中的部分模拟:
id mockApplication = [OCMockObject partialMockForObject:[UIApplication sharedApplication]];
我想这是一个更好的解决方案。 (之前我不知道部分嘲笑)
答案 2 :(得分:1)
我能够通过创建一个处理[[UIApplication sharedApplication] openURL:]的新类来实现这一点,我通过在这个新类上添加静态方法来实现这一点。我仍然不确定这是否是一个好方法,但解决了我的问题。
答案 3 :(得分:-1)
您可以创建XCTest来测试以下方法。
但是,您必须为项目创建测试目标,并在测试目标上创建XCTestCase(如果未创建XCTestCase,并创建以名称testForgotPassWordButtonClicked开头的方法)。
要运行测试目标,请为测试目标创建架构并在其上运行测试。