你好,
我正在为我的应用程序编写单元测试,我想知道是否可以测试是否调用了特定方法。
例如,让我们说我想测试一下,当调用以下dismiss
方法时,也会调用reallyDismiss
方法:
- (void)dismiss
{
[self reallyDismiss];
}
是否有类似的东西:
- (void)testReallyDismissIsCalledWhenDismissIsCalled
{
[self.viewController dismiss];
XCTAssertMethodHasBeenCalled(@"reallyDismiss");
}
答案 0 :(得分:1)
不直接,不。您通常会使用模拟库来注入您自己的该方法版本,以便您可以添加对其调用的期望或对目标类进行子类化,以便子类可以拦截(并在需要时转发)方法调用您& #39;重新检查。
答案 1 :(得分:0)
您可以将代码重构为
-(BOOL)dismiss {
if someCondition {
[self reallyDismiss];
return YES;
} else {
return NO;
}
}
- (void)testReallyDismissIsCalledWhenDismissIsCalled
{
XCTAssertTrue([self.viewController dismiss], @"reallyDismiss");
}