如何在不使用OCMock的情况下模拟局部变量

时间:2016-03-29 06:12:21

标签: ios objective-c unit-testing xctest ocmock

我正在使用apple提供的XCTest框架编写测试用例。我想出了我想模拟在函数内部分配的局部变量的情况,如下所示

-(void)myFunction{
   A* a = [[A alloc] init];
}

从我的testcase类中我想在我的函数testMyFunction中模拟类A.有没有办法不使用OCMock。

2 个答案:

答案 0 :(得分:1)

如果可以先创建实例,然后使用普通的依赖注入技术注入它。

但是如果你需要确保在不需要的情况下创建实例,你有几个选择:

  • 注入一个班级,正如@dasdom所说。然后在需要时调用它的初始化程序。
  • 注入充当工厂的块。在需要时调用它。
  • 对于更复杂的初始化:注入工厂。我通常会使其符合协议,以使替换清晰。

答案 1 :(得分:0)

您可以将要在方法中使用的类注入系统unter测试。在测试中,您可以使用不同的类。