如何使用Kiwi取消存储方法

时间:2014-09-18 21:13:05

标签: ios kiwi

我有一个用于测试目的的宏,用于创建导航控制器,将其设置为主窗口的根视图控制器,并将正在测试的视图控制器放在导航控制器中。

我还希望每次调用pushViewController:animated:时都将动画参数更改为NO

我怎样才能做到这一点?

我尝试使用stub:withBlock:,然后在视图控制器被推送(params [0])的情况下调用块内的pushViewController:animated:而不是,但这会导致无限循环。

还有stub:withArguments:但在这种情况下我没有引用视图控制器,因为它是在几个地方使用的宏。

我能想到的唯一方法是使用stub:withBlock:并在块内删除存根并通常调用pushViewController:params[0]:NO但我找不到删除存根的方法。

任何帮助?

1 个答案:

答案 0 :(得分:0)

Kiwi的存根功能实际上并不是为此而设计的。

它主要有两个主要内容:

  • 将测试中的代码与系统的其余部分隔离开来(通过将方法实现替换为假的实现)
  • 对系统中对象之间的API契约进行断言

如果您想全局更改方法的默认行为,我认为您所追求的是一种更通用的方法调整解决方案。 Kiwi的存根功能可能部分是通过调配来实现的,但它是一个更有针对性的工具。