0

我有一个我正在尝试编写的 SenTest 类,它使用 Category 来覆盖控制器类中的方法。我希望我的模拟控制器类调用 SenTest 类中的一个方法来确定如何处理各种测试。

例如:

  1. 在 testFoo 方法中设置一个 var。
  2. 在 testFoo 中,调用我的模拟控制器的重写方法。
  3. 让它回调到 SenTest 单例,以找出 testFoo 的行为方式。

这可能吗,还是我是个白痴?

4

1 回答 1

0

事实证明,这样做的诀窍是在类别代码中进行关联引用,而不是在 SenTest 案例中。

例如,在类别中声明:

 -(void)fakeMethodToSetTestData:(NSDictionary *)data;

并在该方法中设置关联引用以存储与“self”“关联”的数据。

在您的对象的测试用例中调用它,传入您的数据。

然后在您的测试用例中,调用您的:

-(void)realMethodInCategoryWhichIsBeingOverridden;

并且在此方法的类别实现中,从您在第一个方法中设置的关联引用中检索数据。

这将允许您在控制器上设置测试数据,以便您可以劫持委托链,例如,防止第二种方法进入网络并将您的测试数据返回到控制器的代码中。

于 2011-04-22T15:06:31.773 回答