这篇博客文章指出:
虽然有时可以通过模拟类方法(如OCMock示例中所示)来合理地模拟对象而不使用DI,但通常情况下这是不可能的。即使可能,测试设置的复杂性也可能超过了好处。如果您始终使用依赖注入,您将发现使用存根和模拟编写测试要容易得多。
但它没有解释为什么。在Objective-C中,DI(注入符合协议的id对象)何时比简单的OCMockito更适合用于模拟?
虽然有时可以通过模拟类方法(如OCMock示例中所示)来合理地模拟对象而不使用DI,但通常情况下这是不可能的。即使可能,测试设置的复杂性也可能超过了好处。如果您始终使用依赖注入,您将发现使用存根和模拟编写测试要容易得多。
但它没有解释为什么。在Objective-C中,DI(注入符合协议的id对象)何时比简单的OCMockito更适合用于模拟?
[given([mockArray objectAtIndex:0]) willReturn:@"first"];
[verifyCount(mockArray, times(1)) objectAtIndex:];
?