我有一个我试图编写的SenTest类,它使用Category来覆盖控制器类中的方法。我希望我的模拟控制器类调用SenTest类中的方法来确定如何对各种测试进行操作。
例如:
这可能吗,还是我是白痴?
答案 0 :(得分:0)
说明这样做的诀窍是在类别代码中创建关联的引用,而不是在SenTest情况下。
例如,在类别中声明:
-(void)fakeMethodToSetTestData:(NSDictionary *)data;
在该方法中,设置关联引用以将数据“关联”存储为“self”。
在您的对象的测试用例中调用此方法,传入您的数据。
然后在您的测试用例中,请致电:
-(void)realMethodInCategoryWhichIsBeingOverridden;
在此方法的类别实现中,从您在第一个方法中设置的关联引用中检索数据。
这将允许您在Controller上设置测试数据,以便您可以劫持委托链,例如,防止第二种方法进入网络并将测试数据返回到控制器的代码中。