Ios swift测试用例中单例目标c类的注入依赖

Ios swift测试用例中单例目标c类的注入依赖,ios,objective-c,swift,design-patterns,Ios,Objective C,Swift,Design Patterns,我有一个用Objective C编写的单例类,它在同样用Objective C编写的helper类中使用。我正在为helper类编写一个测试用例,但是我不想直接更改单例类的方法,而是想创建一个模拟单例类,但我不确定如何做到这一点。我不想在helper类中做任何更改,比如创建一个接受singleton类对象的init方法并初始化它,就像在其他线程中提到的singleton类的测试用例一样 感谢您查看此问题。您可以使用OCMock模拟项目中的对象 然后你可以这样嘲笑你的单身汉 YOUR_SINGLE

我有一个用Objective C编写的单例类,它在同样用Objective C编写的helper类中使用。我正在为helper类编写一个测试用例,但是我不想直接更改单例类的方法,而是想创建一个模拟单例类,但我不确定如何做到这一点。我不想在helper类中做任何更改,比如创建一个接受singleton类对象的init方法并初始化它,就像在其他线程中提到的singleton类的测试用例一样


感谢您查看此问题。

您可以使用OCMock模拟项目中的对象

然后你可以这样嘲笑你的单身汉

YOUR_SINGLETON *mock = OCMClassMock([YOUR_SINGLETON class]);
OCMStub([(id) mock YOUR_FUNCTION:PARAMETER]).andReturn(VALUE_FOR_TEST_CASE);
存根函数是这样的

YOUR_SINGLETON *mock = OCMClassMock([YOUR_SINGLETON class]);
OCMStub([(id) mock YOUR_FUNCTION:PARAMETER]).andReturn(VALUE_FOR_TEST_CASE);

您会说,“我不想在helper类中做任何更改”。我不是这方面的专家,但我认为你的限制使你的工作变得比必要的更困难。我的意思是这将是我的最后一个解决方案,但我正在寻找是否有更好的方法来做到这一点。谢谢,但不寻求任何第三方解决方案。