我想模拟单例对象?在scalamock-3中似乎是不可能的
我发现 easyMock 和 powerMock 可以模拟单例对象(来自https://github.com/fabura/scala-MockStaticObjects)
但是,我不能得到这个工作?有任何想法吗?
如果单例对象有一个静态的 .getInstance 方法,它是相当容易模拟的。
您需要在测试类的顶部执行以下操作
@RunWith(PowerMockRunner.class)
@PrepareForTest(Singleton.class)
然后嘲笑单身人士
mockStatic(Singleton.class);
Singleton mockSingleton = mock(Singleton.class);
when(Singleton.getInstance()).thenReturn(mockSingleton);
您希望返回的单例具有的任何值我相信您必须在“何时”示例之前设置:when(mockSingleton.toString()).thenReturn("I'm a mock");