【问题标题】:How to Mock local variable without using OCMock如何在不使用 OCMock 的情况下模拟局部变量
【发布时间】:2016-07-16 13:28:25
【问题描述】:

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

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

从我的测试用例类中,我想在我的函数 testMyFunction 中模拟 A 类。有什么方法可以在不使用 OCMock 的情况下做到这一点。

【问题讨论】:

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


    【解决方案1】:

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

    但如果您需要确保在需要时不会创建实例,您有几个选择:

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

    【讨论】:

      【解决方案2】:

      您可以将要在方法中使用的类注入到系统中进行测试。在测试中你可以使用不同的类。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 1970-01-01
        相关资源
        最近更新 更多