SenTest,Objective-C,类别怪异

时间:2011-04-20 22:14:37

标签: iphone objective-c unit-testing sentestingkit

我有一个我试图编写的SenTest类,它使用Category来覆盖控制器类中的方法。我希望我的模拟控制器类调用SenTest类中的方法来确定如何对各种测试进行操作。

例如:

  1. 在testFoo方法中设置var。
  2. 在testFoo中,调用我的模拟控制器的重写方法。
  3. 让它回调SenTest单例来弄清楚如何为testFoo行事。
  4. 这可能吗,还是我是白痴?

1 个答案:

答案 0 :(得分:0)

说明这样做的诀窍是在类别代码中创建关联的引用,而不是在SenTest情况下。

例如,在类别中声明:

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

在该方法中,设置关联引用以将数据“关联”存储为“self”。

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

然后在您的测试用例中,请致电:

-(void)realMethodInCategoryWhichIsBeingOverridden;

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

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